Código PHP:
/* Este codigo lo he copiado de la pagina http://inebria.com/phpftp/
que está referenciada, al final de la página, en http://es.php.net/manual/es/ref.ftp.php
*/
<?php
//Conecto al ftp y llamo a la función:
function phpftp_put($phpftp_dir,$userfile,$userfile_name){
$userfile_name="prueba.txt"; //Ejemplo
srand((double)microtime()*1000000);
$randval = rand();
$tmpfile=$phpftp_tmpdir . "/" . $userfile_name . "." . $randval;/*Nombre para el archivo temporal que se guardará en el servidor*/
/*Primera prueba
while(!move_uploaded_file($userfile,$tmpfile)){
$carga=false;
}
Tambien probé esto:
while(!move_uploaded_file($userfile,$tmpfile)){
$carga=move_uploaded_file($userfile,$tmpfile);
}
if(!$carga){
Se queda pensando y, despues de esperar un buen rato, nada
--------------------------
Otra opción que acaba dando error con archivos grandes, pequeños sin problema (es la que viene con el script original):
if(!@move_uploaded_file($userfile,$tmpfile)){ */
if(!copy($userfile,$tmpfile)){
?>
<font color="#ff0000"><strong>Subida Fallida</strong></font>
<p><p>
<a href="javascript: history.back();">Continuar</a>
<?php
}else{
ftp_chdir($ftp,$phpftp_dir);
ftp_put($ftp,$userfile_name,$tmpfile,FTP_BINARY);
ftp_quit($ftp);
unlink($tmpfile);
}
}?>
<form enctype="multipart/form-data" action="ftp.php" method="post" name="form">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000000000000">
<input type="hidden" name="phpftp_dir" value="<?php echo $phpftp_dir;?>">
<input type="submit" value="Subir el archivo:">
<input name="userfile" type="file">
</form>
El código completo de esta aplicación sirve para subir y bajar archivos de mi servidor sin que haga falta un cliente FTP, osea vía web.
El problema es que no permite subir ficheros de más de 1'5Mb (porque no puede grabar el temporal en el servidor, como si se desconectara o algo, con los pequeños sin problema), yo necesitaba poder subir archivos de cualquier tamaño.
No se si es cosa del servidor o del explorador o si hay que añadir alguna funcion más al script para que aguante.
Tambien he probado a subir el <input type="hidden" name="MAX_FILE_SIZE" value="10000000000000000"> desde 1000000 hasta el infinito, incluso lo he dejado vacio.
He probado, sin crear el temporal, con todas las opciones para subir ficheros que tiene PHP:
ftp_put($ftp,$userfile_name,$userfile,FTP_BINARY);
Tambien con ftp_fput(), ftp_nb_fput() y nada, ya no se que hacer.
Muchas gracias de antemano.