Foros del Web » Programando para Internet » PHP »

Duda con UPLOAD

Estas en el tema de Duda con UPLOAD en el foro de PHP en Foros del Web. Hola Me gustaría consultarles el siguiente problema: tengo un php ke recibe por POST la ruta y nombre de una imagen, hasta akí todo bien, ...
  #1 (permalink)  
Antiguo 07/07/2004, 14:18
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 13 años, 8 meses
Puntos: 28
Duda con UPLOAD

Hola

Me gustaría consultarles el siguiente problema:
tengo un php ke recibe por POST la ruta y nombre de una imagen, hasta akí todo bien, pero cuando voy a hacer el upload de la misma, resulta ke no funciona. Por lo ke he podido detectar, el fallo es ke no entra por el primer IF por lo tanto sale del upload y no sube nada. También he comprobado ke el $archivo_name no me devuelve nada, al parecer hay algún problema con la versión PHP o alguna historia de esas y no me acepta tanto el "_name" como el "_size".

Aquí les dejo el código:

Código PHP:
$extension explode(".",$archivo_name);
$num count($extension)-1;
if(
$extension[$num] == "gif" || $extension[$num] == "jpg"){

              
AQUÍ YA NO ENTRA
              
.................
              .................
              .................
              if(
$archivo_size 300000){
                         ......
              }


Gracias por adelantado
  #2 (permalink)  
Antiguo 07/07/2004, 14:27
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
pero esto sólo te va a funcionar si lo usas en local , tendrías que usar un input type="file" y recogerlo con $_FILES y no con $_POST
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 07/07/2004, 14:57
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 13 años, 8 meses
Puntos: 28
Hola

Living, el type="file" lo tengo como siempre lo he hecho y siempre me ha funcionado.

Código HTML:
<form name="reportform" method="post" enctype="multipart/form-data">
<input name="archivo" type="file" size="40" accept="image/gif">
</form> 
Luego en el PHP, lo hago como siempre:

Código PHP:
$extension explode(".",$archivo_name);
$num count($extension)-1;
if(
$extension[$num] == "gif" || $extension[$num] == "jpg"){
           ......................

La unica diferencia con respecto al ejemplo ke me funcionaba era ke nombraba los archivos PHP como .php4 y estos los guardo como .php.
También me acabo de dar cuenta ke a la página PHP no me llega ningún valor del campo FILE.

Saludos
  #4 (permalink)  
Antiguo 07/07/2004, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa los arrays superglobales:

$_FILES

y dentro de ellos accede a la propiedad "formato MIME" del archivo en lugar de ver la extensión del archivo desde su nombre (es más seguro). Imagina que llego yo y subo un .exe camuflado con el nombre de .jpg .... Con el "type" (identificación del formato MIME del archivo) no habría problemas, pues ese dato se obtiene de las cabeceras del própio archivo y no de su "nombre" que pueda tener.

Código PHP:
$_FILES['archivo']['type'
Pero si todavía quieres usar el nombre del archivo para tomar su "extensión" .. usa

Código PHP:
$extension_partes explode(".",$_FILES['archivo']['name']); 
$extension=end($extension_partes); 
Algo más "óptimo".

Más info:
http://www.php.net/manual/en/features.file-upload.php

Un saludo,
  #5 (permalink)  
Antiguo 07/07/2004, 16:00
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 13 años, 8 meses
Puntos: 28
Hola

Muchas gracias Cluster voy a probar con esto ke me comentas a ver ke tal.

Saludos
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 09:00.