Foros del Web » Programando para Internet » PHP »

Problema al subir archivos mayor a 1Mb

Estas en el tema de Problema al subir archivos mayor a 1Mb en el foro de PHP en Foros del Web. Hola amigos, tengo una aplicacion para subir archivos a mi base de datos, tengo una condicional para restringir archivos Código PHP:   if ( $tamano_archivo  >  ...
  #1 (permalink)  
Antiguo 03/02/2015, 09:31
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Problema al subir archivos mayor a 1Mb

Hola amigos, tengo una aplicacion para subir archivos a mi base de datos, tengo una condicional para restringir archivos
Código PHP:
 if ($tamano_archivo 1024000){ echo Archivo que sedea adjuntar supera el tamaño limite1MB
por ejemplo esta permite subir solo archivos menores a 1Mb y funciona bien, pero cuando cambio la condicional a "2048000", osea que solo se permite subir archivos menores a 2Mb no se realiza el registro y me aparece este error: error:MySQL server has gone away

Ya he modificado los siguientes valores en el php.ini asi:

max_execution_time = 120
max_input_time = 120
memory_limit = 16M
post_max_size = 10M
upload_max_filesize = 10M
upload_tmp_dir = /xyz

Código PHP:
<?php
if ($_POST["enviar"]){
$tamano_archivo $_FILES['archivito']['size'];
if (
$tamano_archivo 2048000){
        echo 
"<script language='javascript'>alert('Archivo que sedea adjuntar supera el tamaño limite: 2MB ');</script>";         
    }else{
 
$archivo $_FILES["archivito"]["tmp_name"]; 
 
$tamanio $_FILES["archivito"]["size"];
 
$tipo    $_FILES["archivito"]["type"];
 
$nombre  $_FILES["archivito"]["name"];
    
$fp fopen($archivo"rb");
    
$contenido fread($fp$tamanio);
    
$contenido addslashes($contenido);
    
fclose($fp); 
$sql="insert into documentos (fecha_rad,hora_rad,cod_ciu,cod_depen,fecha_doc,cod_priori,num_referencia,asunto,descripcion,cod_est_doc,cod_anexo,cod_est_tram,cod_tipo_docu,nombre,contenido,tipo,tipo_tramite)values
    (NOW(),NOW(),'"
.$_POST["cod_ciu"]."','".$_POST["cod_depen"]."','".$_POST["fecha_doc"]."','".$_POST["cod_priori"]."','".$_POST["num_referencia"]."','".$_POST["asunto"]."','".nl2br($_POST["descripcion"])."','".$_POST["cod_est_doc"]."','".$_POST["cod_anexo"]."','".$_POST["cod_est_tram"]."','".$_POST["cod_tipo_docu"]."','$nombre','$contenido','$tipo','".$_POST["tipo_tramite"]."')";
    if (
$result=mysql_query ($sql,$link))
        {
           echo 
"<script language='javascript'>alert('Tramite creado con exito');document.location=('crear_doc.php');</script>";
           }else{echo 
'error:'.mysql_error($link);}

    }
//cierra else validar tamaño archivo
}//cierra boton enviar
    
?>
Alguien que por favor me colabore. Gracias.
  #2 (permalink)  
Antiguo 03/02/2015, 10:13
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Problema al subir archivos mayor a 1Mb

Antes de aparecer el error, cuanto tiempo pasa?
Es instantaneo o carga un rato hasta que da el error?
  #3 (permalink)  
Antiguo 03/02/2015, 11:03
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al subir archivos mayor a 1Mb

Instantaneo
  #4 (permalink)  
Antiguo 03/02/2015, 11:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al subir archivos mayor a 1Mb

En primer lugar no puedes relacionar un error de "subir archivos" con un error de MySQL:
Cita:
MySQL server has gone away
¿Entiendes que eso carece totalmente de sentido?

Es como culpar al barrendero por una fuga de agua.

Es decir, aprende a aislar el problema: prepara un script que suba únicamente archivos y has pruebas para ver lo que sucede.

¿Qué sucede?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 03/02/2015, 11:35
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al subir archivos mayor a 1Mb

Sigue sucediendo lo mismo
  #6 (permalink)  
Antiguo 03/02/2015, 11:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al subir archivos mayor a 1Mb

¿Podrías mostrarnos el código que aislaste?

¿Podrías mostrarnos el mensaje de error completo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 03/02/2015, 11:51
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al subir archivos mayor a 1Mb

Cuando subo un archivo de 827KB lo sube correctamente, pero cuando trato de subir un archivo de 1682KB me muestra el siguiente error instantáneamente pulso el botón enviar. Cambié el tipo de campo de MEDIUMBLOB a LONGBLOB por que pensé que se debía al limite de almacenamiento de cada tipo pero no.

error:MySQL server has gone away

Código HTML:
Ver original
  1. <form enctype="multipart/form-data" name="index.php" method="post">
  2. Ubicaci&oacute;n <input type="file" name="archivito" id="archivito">
  3. <input type="submit" name="enviar" value="Enviar archivo">
  4. </form>


Código PHP:
Ver original
  1. <?php
  2. if ($_POST["enviar"]){
  3. $tamano_archivo = $_FILES['archivito']['size'];
  4. if ($tamano_archivo < 3145728){
  5.    
  6.  $archivo = $_FILES["archivito"]["tmp_name"];
  7.  $tamanio = $_FILES["archivito"]["size"];
  8.  $tipo    = $_FILES["archivito"]["type"];
  9.  $nombre  = $_FILES["archivito"]["name"];
  10.     $fp = fopen($archivo, "rb");
  11.     $contenido = fread($fp, $tamanio);
  12.     $contenido = addslashes($contenido);
  13.     fclose($fp);
  14. $sql="insert into archivos (nombre,contenido,tipo)values
  15.    ('$nombre','$contenido','$tipo')";
  16.     if ($result=mysql_query ($sql,$link))
  17.         {
  18.            echo "<script language='javascript'>alert('Archivo subido con exito');</script>";
  19.            }else{echo 'error:'.mysql_error($link);}
  20.  
  21. }else{
  22.         echo "<script language='javascript'>alert('Archivo que sedea adjuntar supera el tamaño limite: 1MB ');</script>";
  23.     }//cierra else validar tamaño archivo
  24. }//cierra boton enviar
  25.     ?>
  #8 (permalink)  
Antiguo 03/02/2015, 11:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al subir archivos mayor a 1Mb

¿Qué parte de "aislar el script únicamente para que suba archivos" no entendiste?

Comprende que el error que recibes es de MySQL y tu problema actual es el de subir archivos de cierto peso.

No vas a resolver nada si no separas el problema para resolverlo por separado, ya una vez lo hayas resuelto integrarlo con tu consulta de MySQL debe ser fácil.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 03/02/2015, 11:59
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al subir archivos mayor a 1Mb

No, no te entiendo, me ayudas porfa?
  #10 (permalink)  
Antiguo 03/02/2015, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al subir archivos mayor a 1Mb

Te lo digo con palabras simples: quita todo el código que hace consultas a la base de datos de tu script.

¿O exactamente qué es lo que no entiendes?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 03/02/2015, 12:15
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al subir archivos mayor a 1Mb

Bueno, con este codigo por lo menos ya no me sale ese error de mysql, oviamente por que hice lo que me dijiste.

Código PHP:
Ver original
  1. <?php
  2. if ($_POST["enviar"]){
  3. $tamano_archivo = $_FILES['archivito']['size'];
  4. if ($tamano_archivo < 3145728){
  5.  $archivo = $_FILES["archivito"]["tmp_name"];
  6.  $tamanio = $_FILES["archivito"]["size"];
  7.  $tipo    = $_FILES["archivito"]["type"];
  8.  $nombre  = $_FILES["archivito"]["name"];
  9.     $fp = fopen($archivo, "rb");
  10.     $contenido = fread($fp, $tamanio);
  11.     $contenido = addslashes($contenido);
  12.     fclose($fp);
  13.         echo "Archivo guardado con exito";
  14. }else{
  15.         echo "<script language='javascript'>alert('Archivo que sedea adjuntar supera el tamaño limite: 3MB ');</script>";
  16.     }//cierra else validar tamaño archivo
  17. }//cierra boton enviar
  18.     ?>
  #12 (permalink)  
Antiguo 03/02/2015, 12:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al subir archivos mayor a 1Mb

Excelente, ¿entonces sí permite subir archivos de 2MB cierto?

Ahora sólo resta integrar la consulta a la base de datos, que a propósito, ¿dónde defines la conexión?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 03/02/2015, 12:30
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema al subir archivos mayor a 1Mb

Bueno volví a integrar la parte de mysql en el script pero me vuelve aparecer el mismo error. La conexion a la base de datos la hago en la primera linea de codigo de la paginal de todas maneras la inclui en el script. pero sigue saliendo el mismo error. .mmmmm ñeñeñeñeñe:(

Código PHP:
Ver original
  1. <?php
  2. include 'conex.php';
  3. if ($_POST["enviar"]){
  4. $tamano_archivo = $_FILES['archivito']['size'];
  5. if ($tamano_archivo < 3145728){
  6.  $archivo = $_FILES["archivito"]["tmp_name"];
  7.  $tamanio = $_FILES["archivito"]["size"];
  8.  $tipo    = $_FILES["archivito"]["type"];
  9.  $nombre  = $_FILES["archivito"]["name"];
  10.     $fp = fopen($archivo, "rb");
  11.     $contenido = fread($fp, $tamanio);
  12.     $contenido = addslashes($contenido);
  13.     fclose($fp);
  14.         $sql="insert into archivos (nombre,contenido,tipo)values
  15.    ('$nombre','$contenido','$tipo')";
  16.     if ($result=mysql_query ($sql,$link))
  17.         {
  18.            echo "<script language='javascript'>alert('Archivo subido con exito');</script>";
  19.            }else{echo 'error:'.mysql_error($link);}
  20. }else{
  21.         echo "<script language='javascript'>alert('Archivo que sedea adjuntar supera el tamaño limite: 3MB ');</script>";
  22.     }//cierra else validar tamaño archivo
  23. }//cierra boton enviar
  24.     ?>
  #14 (permalink)  
Antiguo 03/02/2015, 12:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al subir archivos mayor a 1Mb

Bien, pues ahora te toca investigar acerca de dicho error:
Cita:
MySQL server has gone away
Que básicamente significa que se ha perdido la conexión y por lo tanto no se pudo ejecutar tu consulta.

¿Podrías aislar de igual forma únicamente las consultas la base de datos para ver si funcionan?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: fecha, mayor, registro, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:01.