Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/03/2012, 11:52
SeaPirates
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: Out of memory en upload

Cita:
Iniciado por ocp001a Ver Mensaje
Y cómo es el código de tu subida? quizá ahí radique el problema.

He cambiado ya muchas opciones de configuración sin exito, para subir 700mb al 74% vuelve a empezar:

Cita:
default_socket_timeout = 1000000
max_input_time = 1000000
memory_limit = 280000
post_max_size = 1000000
upload_Max_filesize = 1000000
max_execution_time = 1000000
Realmente creo que es el código php, pero no encuentro ningún modo de mejorarlo, es un upload desde ajax:

Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once ("includes/core.php");
  4.  
  5. $fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
  6.  
  7. if ($fn)
  8. {
  9.  
  10.  
  11.     $ftmp = explode(".", $_SERVER['HTTP_X_FILENAME']);
  12.     $extensiones = mysql_num_rows(mysql_query("SELECT id FROM formats WHERE format = '$ftmp[1]'"));
  13.     $fExt = strtolower($ftmp[count($ftmp) - 1]);
  14.  
  15.     if ($extensiones == "0")
  16.     {
  17.         echo "error";
  18.     }
  19.     else
  20.     {
  21.         // AJAX call
  22.         $folder_1 = substr(sha1(uniqid(rand())), 0, 40);
  23.         $folder_2 = substr(sha1(uniqid(rand())), 0, 40);
  24.         $filename = substr(sha1(uniqid(rand())), 0, 40);
  25.         mkdir("files/" . $folder_1 . "", 0777, true);
  26.         mkdir("files/" . $folder_1 . "/" . $folder_2 . "", 0777, true);
  27.         chmod("files/" . $folder_1 . "", 0777);
  28.         chmod("files/" . $folder_1 . "/" . $folder_2 . "", 0777);
  29.  
  30.         file_put_contents("files/" . $folder_1 . "/" . $folder_2 . "/" . $fn,
  31.             file_get_contents('php://input'));
  32.         rename("files/" . $folder_1 . "/" . $folder_2 . "/" . $_SERVER['HTTP_X_FILENAME'],
  33.             "files/" . $folder_1 . "/" . $folder_2 . "/" . $filename . "." . $fExt . "");
  34.         $refer_1 = rand(1111111111, 9999999999);
  35.         $refer_2 = rand(1111111111, 9999999999);
  36.         $refer = substr(sha1(uniqid(rand())), 0, 10);
  37.         $download_1 = rand(1111111111, 9999999999);
  38.         $download_2 = rand(1111111111, 9999999999);
  39.         $download = substr(sha1(uniqid(rand())), 0, 40);
  40.         $direct = "files/" . $folder_1 . "/" . $folder_2 . "/" . $filename . "." . $fExt .
  41.             "";
  42.         if (isset($_SESSION['id']))
  43.         {
  44.             $type = "user";
  45.             $owner = $user['username'];
  46.         }
  47.         else
  48.         {
  49.             $type = "guest";
  50.             $owner = $_SERVER['REMOTE_ADDR'];
  51.         }
  52.         mysql_query("INSERT INTO downloads (refer_id,download_id,direct_download,filename,type,owner,lastdownload) VALUES('" .
  53.             $refer . "','" . $download . "','" . $direct . "','" . $_SERVER['HTTP_X_FILENAME'] .
  54.             "','$type','$owner','" . time() . "')");
  55.         $peso_archivo = filesize($direct);
  56.         if (!isset($_SESSION['upstyle']))
  57.         {
  58.             $class = "odd";
  59.             $_SESSION['upstyle'] = true;
  60.         } elseif ($_SESSION['upstyle'])
  61.         {
  62.             $class = "even";
  63.             unset($_SESSION['upstyle']);
  64.         }
  65.  
  66.  
  67.         echo '<section class="file ' . $class . '"><section class="FileSep">' . $_SERVER['HTTP_X_FILENAME'] .
  68.             '</section> <section class="FileSep">' . file_size($peso_archivo) .
  69.             '</section> <section class="FileSep" style="width:500px;"><a class="link" href="https://' .
  70.             $_SERVER['SERVER_NAME'] . '/d' . $refer .
  71.             '" target="_blank" id="tooltip_left">https://' . $_SERVER['SERVER_NAME'] . '/d' .
  72.             $refer . '<section>Con este enlace podr&aacute;s descargar tu archivo o pasarlo a tus amigos cuando quieras</section></a></section> <section class="FileSep"><a id="tooltip_left" class="tag" href="#" id="tooltip_left">Eliminar<section>Para eliminar esta descarga haz click a este enlace</section></a> <a id="tooltip_left" class="tag" href="#" id="tooltip_left">Compartir<section>Proximamente</section></a></section></section>';
  73.  
  74.     }
  75. }
  76.  
  77. ?>

Última edición por SeaPirates; 20/03/2012 a las 11:58