Foros del Web » Programando para Internet » PHP »

Problema con php de upload

Estas en el tema de Problema con php de upload en el foro de PHP en Foros del Web. Amigos tengo un php que es el que me permite el upload de mis archivos a mi db, mi php.ini lo tengo configurado para poder ...
  #1 (permalink)  
Antiguo 15/06/2012, 16:15
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Problema con php de upload

Amigos tengo un php que es el que me permite el upload de mis archivos a mi db, mi php.ini lo tengo configurado para poder subir hasta 32 mb pero en este php que dejo aqui debajo esta configurado para poder subir hasta 1 mb, el tema es que no se como poder hacerlo para que suba hasta 15 mb alguien podria ayudarme ya que no comprendo mucho lo de los bytes y megas.

Código PHP:
<?php
//ESTA FUNCION LA USAREMOS PARA OBTENER EL TAMAÑO DE NUESTRO ARCHIVO
function filesize_format($bytes$format ''$force ''){
    
$bytes=(float)$bytes;
    if (
$bytes <1024){
        
$numero=number_format($bytes0'.'',');
        return array(
$numero,"B");
    }
    if (
$bytes <1048576){
        
$numero=number_format($bytes/10242'.'',');
        return array(
$numero,"KBs");
    }
    if (
$bytes>= 1048576){
        
$numero=number_format($bytes/10485762'.'',');
        return array(
$numero,"MB");
    }
}
//VERIFICAMOS QUE SE SELECCIONO ALGUN ARCHIVO
if(sizeof($_FILES)==0){
    echo 
"No se puede subir el archivo";
    exit();
}
// EN ESTA VARIABLE ALMACENAMOS EL NOMBRE TEMPORAL QU SE LE ASIGNO ESTE NOMBRE ES GENERADO POR EL SERVIDOR
// ASI QUE SI NUESTRO ARCHIVO SE LLAMA foto.jpg el tmp_name no sera foto.jpg sino un nombre como SI12349712983.tmp por decir un ejemplo
$archivo $_FILES["archivo"]["tmp_name"];
//Definimos un array para almacenar el tamaño del archivo
$tamanio=array();
//OBTENEMOS EL TAMAÑO DEL ARCHIVO
$tamanio $_FILES["archivo"]["size"];
//OBTENEMOS EL TIPO MIME DEL ARCHIVO
$tipo $_FILES["archivo"]["type"];
//OBTENEMOS EL NOMBRE REAL DEL ARCHIVO AQUI SI SERIA foto.jpg
$nombre_archivo $_FILES["archivo"]["name"];
//PARA HACERNOS LA VIDA MAS FACIL EXTRAEMOS LOS DATOS DEL REQUEST
extract($_REQUEST);
//VERIFICAMOS DE NUEVO QUE SE SELECCIONO ALGUN ARCHIVO
if ( $archivo != "none" ){
    
//ABRIMOS EL ARCHIVO EN MODO SOLO LECTURA
    // VERIFICAMOS EL TAÑANO DEL ARCHIVO
    
$fp fopen($archivo"rb");
    
//LEEMOS EL CONTENIDO DEL ARCHIVO
    
$contenido fread($fp$tamanio);
    
//CON LA FUNCION addslashes AGREGAMOS UN \ A CADA COMILLA SIMPLE ' PORQUE DE OTRA MANERA
    //NOS MARCARIA ERROR A LA HORA DE REALIZAR EL INSERT EN NUESTRA TABLA
    
$contenido addslashes($contenido);
    
//CERRAMOS EL ARCHIVO
    
fclose($fp);
    
// VERIFICAMOS EL TAÑANO DEL ARCHIVO
    
if ($tamanio <1048576){
        
//HACEMOS LA CONVERSION PARA PODER GUARDAR SI EL TAMAÑO ESTA EN b ó MB
        
$tamanio=filesize_format($tamanio);
    }
    
    
//CREAMOS NUESTRO INSERT
    
$qry "INSERT INTO tbl_carrera_1 ( curso,titulo,nombre_archivo, descripcion, contenido, tamanio,tamanio_unidad, tipo ) VALUES
    ('$curso','$titulo','$nombre_archivo', '$descripcion','$contenido','{$tamanio[0]}','{$tamanio[1]}', '$tipo')"
;
    
    
//NOS CONECAMOS A LA BASE DE DATOS
    //REMPLAZEN SUS VALOS POR LOS MIOS
    
mysql_connect("localhost","user","pass") or die("No se pudo conectar a la base de datos");
    
    
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
    
mysql_select_db("base de datos");
    
    
//EJECUTAMOS LA CONSULTA
    
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());
    
    
//CERRAMOS LA CONEXION
    
mysql_close();
    
//NOTIFICAMOS AL USUARIO QUE EL ARCHVO SE HA ENVIADO O REDIRIGIMOS A OTRO LADO ETC.
    
echo "Documento Subido Correctamente<br>";
    echo 
'<a href="form.html">Subir Otro Archivo</a><br > ';
}else{
    echo 
"No fue posible subir el archivo";
    echo 
'<a href="form.html">Subir Otro Archivo</a><br > ';
}
?>

Salu2 y gracias
  #2 (permalink)  
Antiguo 15/06/2012, 16:36
 
Fecha de Ingreso: enero-2011
Ubicación: Argentina
Mensajes: 80
Antigüedad: 13 años, 2 meses
Puntos: 12
Respuesta: Problema con php de upload

Si 1024 bytes es igual a 1kb (kilobytes)

y 1024 kb (kilobytes) es igual a 1MB (Megabytes)

Entonces, 1024 * 1024 = 1048576 es decir, 1MB

y 1048576 * 15 = 15728640 es decir, 15MB
  #3 (permalink)  
Antiguo 15/06/2012, 16:38
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Problema con php de upload

El tamaño se coloca en bytes
15*1024*1024 = 15728640

Código PHP:
<?php
//ESTA FUNCION LA USAREMOS PARA OBTENER EL TAMAÑO DE NUESTRO ARCHIVO
function filesize_format($bytes$format ''$force ''){
    
$bytes=(float)$bytes;
    if (
$bytes <1024){
        
$numero=number_format($bytes0'.'',');
        return array(
$numero,"B");
    }
    if (
$bytes <1048576){
        
$numero=number_format($bytes/10242'.'',');
        return array(
$numero,"KBs");
    }
    if (
$bytes>= 1048576){
        
$numero=number_format($bytes/10485762'.'',');
        return array(
$numero,"MB");
    }
}
//VERIFICAMOS QUE SE SELECCIONO ALGUN ARCHIVO
if(sizeof($_FILES)==0){
    echo 
"No se puede subir el archivo";
    exit();
}
// EN ESTA VARIABLE ALMACENAMOS EL NOMBRE TEMPORAL QU SE LE ASIGNO ESTE NOMBRE ES GENERADO POR EL SERVIDOR
// ASI QUE SI NUESTRO ARCHIVO SE LLAMA foto.jpg el tmp_name no sera foto.jpg sino un nombre como SI12349712983.tmp por decir un ejemplo
$archivo $_FILES["archivo"]["tmp_name"];
//Definimos un array para almacenar el tamaño del archivo
$tamanio=array();
//OBTENEMOS EL TAMAÑO DEL ARCHIVO
$tamanio $_FILES["archivo"]["size"];
//OBTENEMOS EL TIPO MIME DEL ARCHIVO
$tipo $_FILES["archivo"]["type"];
//OBTENEMOS EL NOMBRE REAL DEL ARCHIVO AQUI SI SERIA foto.jpg
$nombre_archivo $_FILES["archivo"]["name"];
//PARA HACERNOS LA VIDA MAS FACIL EXTRAEMOS LOS DATOS DEL REQUEST
extract($_REQUEST);
//VERIFICAMOS DE NUEVO QUE SE SELECCIONO ALGUN ARCHIVO
if ( $archivo != "none" ){
    
//ABRIMOS EL ARCHIVO EN MODO SOLO LECTURA
    // VERIFICAMOS EL TAÑANO DEL ARCHIVO
    
$fp fopen($archivo"rb");
    
//LEEMOS EL CONTENIDO DEL ARCHIVO
    
$contenido fread($fp$tamanio);
    
//CON LA FUNCION addslashes AGREGAMOS UN \ A CADA COMILLA SIMPLE ' PORQUE DE OTRA MANERA
    //NOS MARCARIA ERROR A LA HORA DE REALIZAR EL INSERT EN NUESTRA TABLA
    
$contenido addslashes($contenido);
    
//CERRAMOS EL ARCHIVO
    
fclose($fp);
    
// VERIFICAMOS EL TAÑANO DEL ARCHIVO <-- Aki verifica el tamaño
    
if ($tamanio <15728640){
        
//HACEMOS LA CONVERSION PARA PODER GUARDAR SI EL TAMAÑO ESTA EN b ó MB
        
$tamanio=filesize_format($tamanio);
    }
    
    
//CREAMOS NUESTRO INSERT
    
$qry "INSERT INTO tbl_carrera_1 ( curso,titulo,nombre_archivo, descripcion, contenido, tamanio,tamanio_unidad, tipo ) VALUES
    ('$curso','$titulo','$nombre_archivo', '$descripcion','$contenido','{$tamanio[0]}','{$tamanio[1]}', '$tipo')"
;
    
    
//NOS CONECAMOS A LA BASE DE DATOS
    //REMPLAZEN SUS VALOS POR LOS MIOS
    
mysql_connect("localhost","user","pass") or die("No se pudo conectar a la base de datos");
    
    
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
    
mysql_select_db("base de datos");
    
    
//EJECUTAMOS LA CONSULTA
    
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());
    
    
//CERRAMOS LA CONEXION
    
mysql_close();
    
//NOTIFICAMOS AL USUARIO QUE EL ARCHVO SE HA ENVIADO O REDIRIGIMOS A OTRO LADO ETC.
    
echo "Documento Subido Correctamente<br>";
    echo 
'<a href="form.html">Subir Otro Archivo</a><br > ';
}else{
    echo 
"No fue posible subir el archivo";
    echo 
'<a href="form.html">Subir Otro Archivo</a><br > ';
}
?>
  #4 (permalink)  
Antiguo 15/06/2012, 17:09
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con php de upload

A ver modifique la linea que dice
if ($tamanio <15728640){

le puse el valor que me dijeron e intente subir un archivo de 5 megas y me tiro el siguiente error:

Error: Got a packet bigger than 'max_allowed_packet' bytes
  #5 (permalink)  
Antiguo 15/06/2012, 19:47
 
Fecha de Ingreso: junio-2012
Mensajes: 77
Antigüedad: 11 años, 10 meses
Puntos: 5
Respuesta: Problema con php de upload

fijate en el php.ini que valor tenes por defecto
  #6 (permalink)  
Antiguo 16/06/2012, 07:51
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con php de upload

Hola amigo, el valor de mi php.ini es de 32 mb

Etiquetas: html, mysql, tabla, upload, variables, usuarios
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 19:36.