Foros del Web » Programando para Internet » PHP »

Problema con upload

Estas en el tema de Problema con upload en el foro de PHP en Foros del Web. Hola tengo un upload de ficheros pdf que me funciona perfectamente pero solo con ficheros pequeños (me falla a partir de 250k-300k aprox) Pongo el ...
  #1 (permalink)  
Antiguo 06/02/2010, 12:35
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Problema con upload

Hola tengo un upload de ficheros pdf que me funciona perfectamente pero solo con ficheros pequeños (me falla a partir de 250k-300k aprox)
Pongo el código asi como el array que me devuelve el error.
Lo curioso es que no reconoce el tipo de fichero ni el espacio que ocupa.
Por otro lado alguien me puede decir que significa el error que me devuelve $HTTP_POST_FILES " [error] => 2"?
Cabe decir que ya he probado cambiando $HTTP_POST_FILES por $FILES pero por alguna extraña razón mi server de desarrollo bajo windows solo admite $HTTP_POST_FILES (y eso que es php 5).
El error me lo da tanto en mi server de desarrollo como en el hosting y el tema de los permisos 777 ya lo tengo solucionado puestos que con ficheros pequeños si que funciona.
La limitación del hostin max_file_upload es de 2mb.
el error me me da es "La extensión o el tamaño de los archivos no es correcta. Solo se permiten archivos .pdf".
Gracias de antemano.
Saludos


Código PHP:
<form action="gestion.php?subir=subir" method="post"  enctype="multipart/form-data">

<
p>Reemplazar cat&aacute;logo en PDF</p>
<
input type="file" name="catalogo" />
<
input type="hidden" name="MAX_FILE_SIZE" value="300000" /> 
<
br /><br />
<
input type="submit" value="Enviar" name="boton" />

</
form
Código PHP:
    //upload  catalogo
    
if( $HTTP_POST_FILES['catalogo']['name'])
    {

        
//tomo el valor de un elemento de tipo texto del formulario 
        //$cadenatexto = $_POST["cadenatexto"]; 
        //echo "<p>Empezamos con el upload</p>"; 
        
        //datos del arhivo 
        
$nombre_archivo $HTTP_POST_FILES['catalogo']['name']; 
        
//echo "nombre $nombre_archivo";
        
$tipo_archivo =$HTTP_POST_FILES['catalogo']['type']; 
        
//echo "--typo $tipo_archivo";
        
$tamano_archivo $HTTP_POST_FILES['catalogo']['size']; 
        
//echo "--tamaño $tamano_archivo";
        //compruebo si las características del archivo son las que deseo 
        
if (!( strpos($tipo_archivo"pdf")) && ($tamano_archivo 3000000))
        { 
            
//echo $tipo_archivo."<br>";
            
echo "<p>La extensión o el tamaño de los archivos no es correcta. <br>
            Solo se permiten archivos .pdf<br>"

        }
        else
        { 
            if (
move_uploaded_file($HTTP_POST_FILES['catalogo']['tmp_name'], "catalogo_centro.pdf"))
            { 
                echo 
"<p>El cat&aacute;logo ha sido reemplazado correctamente en catalogo_centro.pdf</p>";   
            }
            else
            { 
               echo 
"<p>Ocurrió algún error al subir el cat&aacute;logo. No pudo guardarse.</p>"
            }
            
        }
        echo 
"<p>Archivo tipo: ".$tipo_archivo.".</p>";
        echo 
"<p>El tama&ntilde;o del archivo es: ".$tamano_archivo.".</p>";
        
    }
//FIN upload catalogo 


Código PHP:

$HTTP_POST_FILES
Array
(

    [
catalogo] => Array
        (
            [
name] => centro.pdf
            
[type] => 
            [
tmp_name] => 
            [
error] => 2
            
[size] => 0
        
)


  #2 (permalink)  
Antiguo 06/02/2010, 17:03
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con upload

<input type="hidden" name="MAX_FILE_SIZE" value="300000" /> a veces presenta problemas, ponle un poco más, a veces los archivos no pesan 300000 exactos, ponle 400000 (a veces un archivo puede pesar un poco más dependiendo del sistema de archivos, son casos raros, de unos cuantos bytes, pueden incluso llegar a pesar mas si el dd no se desfragmenta por mucho tiempo), además no solo debes validar esto en el local, es preferible hacerlo de todos modo en el servidor.

usa siempre $_FILES
  #3 (permalink)  
Antiguo 07/02/2010, 04:20
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: Problema con upload

No funciona
Lo extraño es que nisiquiera reconoce el tipo de archiovo ya que lo intento imprimiry no dice nada.
Alguna sugerencia mas?

Código:
echo "<p>Archivo tipo: ".$tipo_archivo.".</p>"; 
echo "<p>El tama&ntilde;o del archivo es: ".$tamano_archivo.".</p>"; 
Este el error que me da.
-----------------------------------------------------------------

La extensión o el tamaño de los archivos no es correcta.
Solo se permiten archivos .pdf
Archivo tipo: .
El tamaño del archivo es: 0.
  #4 (permalink)  
Antiguo 08/02/2010, 09:09
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema con upload

reemplaza el $_HTTP_POST_FILES por $_FILES. ya que el $_HTTP_POST_FILES solo es aceptada a partir de php 4, pero a partir de php5 esa funcion ya no es valida.

saludos.
  #5 (permalink)  
Antiguo 09/02/2010, 00:18
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: Problema con upload

Bueno ya lo tengo funcionando
Resulta que <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> tengo que aumentarlo mucho mas (al final lo he dejado en 3000000).
Resulta que mis servidores son "PHP Version 5.2.6 el server local" y "PHP Version 5.2.12 el hosting" y por alguna extraña razón no funciona el $_FILES y si el $HTTP_POST_FILES.
Pero bueno en cualquier caso ya lo tengo funcionando.
Saludos.
  #6 (permalink)  
Antiguo 09/02/2010, 09:40
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema con upload

que extraño. la funcion $FILES deberia de funcionar en la version de php 4 para arriba.

en tu servidor, le diste permisos a tu carpeta donde se guarda tus imagenes ?.

me percate de algo. porque le colocas en el action como si estuvieras enviando un valor tipo get en tu metodo de formulario post ?.

lo correcto seria solo colocar en el action el nombre del archivo, el metodo y el enctype="multipart/form-data".

bueno. si has resuelto tu aplicacion, ok.

saludos.
  #7 (permalink)  
Antiguo 09/02/2010, 16:32
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: Problema con upload

Si a mi también me sorprende pero no se porque falla el $files...
con respecto al formulario es que manda post y get a la vez porque el fichero PHP tiene múltiples funciones aparte de recibir y gestionar los datos del post.
Ya se que lo mas normal seria poner que cuando en boton "Envar" sea igual a "enviar" se ejecute pero ya tenia la aplicación asi y no lo he cambiado.
Saludos

Etiquetas: upload
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 06:32.