Foros del Web » Programando para Internet » PHP »

(Consulta) Script cargar archivo algunos errores

Estas en el tema de (Consulta) Script cargar archivo algunos errores en el foro de PHP en Foros del Web. Hola, Arme este script para subir archivos. 1. Tengo problemas con la funcion, no puedo pasar el parámetro por defecto o estoy concatenando mal. 2. ...
  #1 (permalink)  
Antiguo 06/04/2011, 04:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
(Consulta) Script cargar archivo algunos errores

Hola,

Arme este script para subir archivos.

1. Tengo problemas con la funcion, no puedo pasar el parámetro por defecto o estoy concatenando mal.

2. No puedo validar la extensión del archivo.

3. Me gustaría, de ser posible, una revisión del script. Sugerencias, etc.

Código PHP:
Ver original
  1. function upload($ruta = "img/", $titulo = null, $temp = null, $archivo = null) {
  2.     #   Existe el directorio?  
  3.     if (!is_dir("$ruta"  . $titulo)) { 
  4.         //Creo directorio con permisos
  5.             $dirCreado = mkdir("$ruta" . $titulo, 0777);
  6.                 //Subo el archivo
  7.                 if ($dirCreado) {
  8.                 //Subo el archivo
  9.                 $cargar = move_uploaded_file($temp, "$ruta.$titulo" . $archivo);
  10.                     if ($cargar) {
  11.                         echo "Archivo Cargado Correctamente. ";
  12.                     } else {
  13.                         echo "Error al cargar el archivo. ";
  14.                     }
  15.                
  16.             } else {
  17.                 echo "No se puede crear el directorio. <br />";
  18.             }
  19.         } else {
  20.             echo "El directorio existe. ";
  21.         }
  22. #   Fin Fx.
  23. }
  24.  
  25.  
  26. if (isset($_FILES['file']) && !empty($_FILES['file'])) {
  27.     $archivo = $_FILES['file'];
  28.    
  29.     foreach ($archivo as $clave => $valor) {
  30.             foreach ($valor as $key => $value) {
  31.                 #echo "$key = $value <br />";
  32.                 $archivoNombre = isset($_FILES['file']['name'][$key]);
  33.                 $archivoNombreTemp = isset($_FILES['file']['tmp_name'][$key]);
  34.                 $archivoTipo = $_FILES['file']['type'][$key];
  35.                 $archivoTamano = isset($_FILES['file']['size'][$key]);
  36.                 #echo "$archivoNombre <br />";
  37.     }
  38. }
  39.  
  40.     #print_r($archivo);
  41.  
  42.         // Compruebo que el tamaño sea el correcto (en bits)
  43.         if ($archivoTamano <= 8192000) {
  44.             // Compruebo la extensión del archivo
  45.             $extension = preg_match("@image/(gif|pjpeg|jpeg|png|x-png|bmp)$@", $archivoTipo);
  46.             if ($archivoTipo == $extension) {
  47.                 //Compruebo si hay tamaño en disco {
  48.                 $espacioDir = disk_free_space("img/");
  49.                 if ($espacioDir) {
  50.                     /*
  51.                      * Cargo el archivo
  52.                      * Llamo a la funcion upload()
  53.                      * TEST = variable que recibe $_POST['titulo'] del formulario
  54.                      */
  55.                     $loading = upload("", "Test", "$archivoNombreTemp", "$archivoNombre");
  56.                        
  57.                     //  Muestro si se cargo correctamente
  58.                     if (!$loading) {
  59.                         echo "Error el cargar el archivo";
  60.                     } else { echo "Cargado Exitosamente.";}
  61.                 } else { echo "No hay espacio en directorio o disco.";}
  62.             } else { echo "La extension no es correcta.";}
  63.         } else { echo "El archivo es demasiado grande";}
  64. } else { echo "Debe seleccionar un archivo.";}
  #2 (permalink)  
Antiguo 06/04/2011, 05:04
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: (Consulta) Script cargar archivo algunos errores

Haces $loading = upload("", "Test", "$archivoNombreTemp", "$archivoNombre");, pero en ningun momento veo que tu funcion haga un return.

De momento prueba eso mientra reviso el codigo.

EDIT: http://www.desarrolloweb.com/articulos/1307.php para mas ayuda
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.

Última edición por Vallu; 06/04/2011 a las 05:14
  #3 (permalink)  
Antiguo 06/04/2011, 05:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Consulta) Script cargar archivo algunos errores

Gracias.

Pasando el parametro cuando llamo a la funcion, si se crea el directorio dentro de img/

$loading = upload("img/", "Test", "$archivoNombreTemp", "$archivoNombre");

Ya puse return y me sale "Notice: Undefined variable: cargar in /var/www/funciones/upload.php on line 19"

Linea 19 return $cargar;

Última edición por opzina; 06/04/2011 a las 05:41
  #4 (permalink)  
Antiguo 06/04/2011, 06:01
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: (Consulta) Script cargar archivo algunos errores

Mejor pon el código de la funcion upload(); Podria ser debido a que no se inicializa la variable $cargar?
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #5 (permalink)  
Antiguo 06/04/2011, 06:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Consulta) Script cargar archivo algunos errores

El código esta puesto en el primer post :)
  #6 (permalink)  
Antiguo 06/04/2011, 06:04
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: (Consulta) Script cargar archivo algunos errores

Per no con el return ., No puedo adivinar donde lo pusiste, porque en la linea 19 del primer post esta el else de si existe el directorio.
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #7 (permalink)  
Antiguo 06/04/2011, 06:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Consulta) Script cargar archivo algunos errores

Código PHP:
Ver original
  1. function upload($ruta = null, $titulo = null, $temporal = null, $archivo = null) {
  2.     #   Existe el directorio?  
  3.     if (!is_dir("$ruta"  . $titulo)) { 
  4.         //Creo directorio con permisos
  5.             $dirCreado = mkdir( "$ruta" . $titulo, 0777 );
  6.                 //Subo el archivo
  7.                 if ( $dirCreado ) {
  8.                 //Subo el archivo
  9.                 $cargar = move_uploaded_file($temporal, "$ruta.$titulo" . $archivo);
  10.                
  11.                     if ($cargar) {echo "Archivo Cargado Correctamente. ";
  12.                     } else {echo "Error al cargar el archivo. ";}
  13.                
  14.             } else {echo "No se puede crear el directorio. <br />";}
  15.         } else {echo "El directorio existe.";}
  16.        
  17.         return $cargar;
  18. #   Fin Fx.
  19. }
  #8 (permalink)  
Antiguo 07/04/2011, 04:55
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: (Consulta) Script cargar archivo algunos errores

Código PHP:
function upload($ruta null$titulo null$temporal null$archivo null) {
    
$cargar=false//Inicializa la variable $cargar, ya que si por ejemplo existe el directorio no entrara en el if, y cuando hagas el return se quejara con el error que tienes.
         //Existe el directorio?   
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.

Etiquetas: errores
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 00:51.