Subir ficheros grandes

Iniciado por taeye, 29 Julio 2011, 19:35 PM

0 Miembros y 1 Visitante están viendo este tema.

taeye

Hola a todos,

Estoy elaborando un proyecto en el que necesito que los usuarios suban un archivo multimedia (video) a un directorio de mi hosting. Sin embargo, estoy teniendo problemas con subir archivos superiores a 50MB. He configurado mi php.ini indicando un tamaño máximo de 600MB en los post (upload_max_filesize = 600M, post_max_size = 600M) y he puesto un tiempo de espera de dos horas (max_input_time = 7200) sin embargo el error persiste.

Adjunto una copia mi código.

Formulario:
<form action="procesar.php" method="post" enctype="multipart/form-data" name="formulario">
<input name="nombre" value="" size="30"> <br /><br />
<input name="estilo" value="" size="30"> <br /><br />
<input name="web" value="" size="30"> <br /><br />
<input name="email" value="" size="30"> <br /><br />
<input name="ytube" value="" size="30"> <br /><br />
<input type="file" name="file" id="file" /><br /><br /><br />
<input name="titulo" value="" size="30"> <br /><br />
<textarea cols="27" rows="3" id="mensaje" name="mensaje" /></textarea><br /><br /> 
<input type="submit" name="submit" value="Subir video" />
</form>


Código PHP que procesa el formulario:
<?php
if ($_FILES["file"]["size"] < 512000000){
  if (
$_FILES["file"]["error"] > 0){
    echo 
"Se ha producido un error: " $_FILES["file"]["error"] . "<br />";
    }else{
    
echo "Se ha subido correctamente el fichero:" "<br />";
    echo "Nombre: " $_FILES["file"]["name"] . "<br />";
    echo "Tipo: " $_FILES["file"]["type"] . "<br />";
    echo "Tama&ntilde;o: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
   
    
if (file_exists("videos/" $_FILES["file"]["name"])){
    
  echo $_FILES["file"]["name"] . " ya existe. ";
    
}else{
    
  move_uploaded_file($_FILES["file"]["tmp_name"],
    
  "videos/" $_FILES["file"]["name"]);
    
}
    }
}else{
  echo 
"Invalid file";
}
?>



Gracias por vuestro tiempo,
Un saludo

Nakp

sabrás si el hosting que contratas tiene algún límite? no parece normal que no puedas subir ningún archivo mayor de 50mb con esas configuraciones
Ojo por ojo, y el mundo acabará ciego.

WHK

Via html es imposble, yo traté incluso de configurar el límite desde php y htaccess pero la configuración principal del servidor es el que manda.
Normalmente desde un hosting compartido es imposible a menos que hables con el administrador o mandes un ticket.

Si tienes un vps o dedicado puedes modificarlo desde las configuraciones del apache.

Yo solucioné este problema creando un uploader en .net que corta el archivo en trozos de 2mb y los sube con un token, luego cuando finaliza manda una petición get para unirlos y los une con fopen() fgets() etc sin pasar por file put contents con variables para evitar la sobrecarga de memoria ram.

taeye

Gracias por contestar.

Creo que también probaré con un upload en .net

Un saludo

[u]nsigned

Quizas el limite del servidor se aplica solo a HTTP, podrias implementar el script pero usar FTP en lugar de enviar el fichero por $_FILES.

Te diria que proves subir algun archivo de unos 60/70 mb 'a mano' directamente con algun cliente FTP como Filezilla, si no tenes problemas hace lo que te digo. Solo le das set_time_limit(0) al script y listo.

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!