Foros del Web » Programando para Internet » PHP »

Problema con upload file

Estas en el tema de Problema con upload file en el foro de PHP en Foros del Web. Hola Estoy subiendo archivos gif a un sevidor, pero yo quiero que el usuario que vaya a subir estos gifs, solo pueda subir archivos del ...
  #1 (permalink)  
Antiguo 07/03/2005, 06:16
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 6 meses
Puntos: 0
Problema con upload file

Hola
Estoy subiendo archivos gif a un sevidor, pero yo quiero que el usuario que vaya a subir estos gifs, solo pueda subir archivos del tipo gif y no otros, por lo tanto hice el siguiente escript para testiar el tipo de archivo a subir:
(pic_icon es el nombre del input text)

Código PHP:
$uploaddir "C:\AppServ\www\CLA\images\\";
                     
$uploadfile $uploaddir$_FILES['pic_icon']['name'];
                     if (
$_FILES['pic_icon']['type'] == "image/gif") {                         
                    
move_uploaded_file($_FILES['pic_icon']['tmp_name'],$uploadfile);
} else {
echo 
"no es gif";

El problema es que este escript me está subiendo todo tipo de archivos, no se que tiene mal.
Si alguien encuetra un error o sabe algo, me gustaría que lo comparta. Gracias

ratamaster
  #2 (permalink)  
Antiguo 07/03/2005, 06:45
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Pues ...

Código PHP:
$uploaddir "C:\AppServ\www\CLA\images\\";
 
$uploadfile $uploaddir$_FILES['pic_icon']['name'];
 if(
$_FILES['pic_icon']['type'] == "image/gif"){
  
move_uploaded_file($_FILES['pic_icon']['tmp_name'],$uploadfile);
 }else {
  echo 
"no es gif";
 } 
A simple vista yo veo correcto el script. A dime una cosa, que versión de PHP usas? Porque si es anterior a la 4.1.0 debes usar el arreglo superglobal $_HTTP_POST_FILES en vez de $_FILES.

Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 07/03/2005, 06:51
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 6 meses
Puntos: 0
La versión es 4.3.xxx
Doy unos datos más: este script está dentro de una sentencia switch/case

entonces:

Código PHP:
if(isset($_REQUEST['action'])){
         (
$_REQUEST['action']){

case 
"preview":  
 
$uploaddir "C:\AppServ\www\CLA\images\\";
$uploadfile $uploaddir$_FILES['pic_icon']['name'];
if(
$_FILES['pic_icon']['type'] == "image/gif"){
  
move_uploaded_file($_FILES['pic_icon']['tmp_name'],$uploadfile);
}else {
  echo 
"no es gif";
}  

}



Espero que sirva de algo, porque tengo este mismo script en otra aplicación sin la setencia switch/case y me funciona.
  #4 (permalink)  
Antiguo 07/03/2005, 09:30
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Una pregunta ...

Eso te funciona?? Creo que no debe entrar ahí porque faltan cosas. Mira aquí te corrijo los errores:
Código PHP:
 if(isset($_REQUEST['action'])){
 case 
"preview":
  
$uploaddir "C:\AppServ\www\CLA\images\\";
  
$uploadfile $uploaddir$_FILES['pic_icon']['name'];
  if(
$_FILES['pic_icon']['type'] == "image/gif"){
   
move_uploaded_file($_FILES['pic_icon']['tmp_name'],$uploadfile);
  }else {
   die(
$_FILES['pic_icon']['error']); // Para que te devuelva el error en cuestion
  
}
  break; 
// Esto te falta

Dime si sigue sin funcionar
Salu2
__________________
Ing. Reynier Pérez Mira
  #5 (permalink)  
Antiguo 07/03/2005, 10:58
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 6 meses
Puntos: 0
Perdón, te escribí el código mal, este es:
Código PHP:
if(isset($_REQUEST['action'])){
        switch(
$_REQUEST['action']){

case 
"preview":
        
$uploaddir "C:\AppServ\www\CLA\images\\";
        
$uploadfile $uploaddir$_FILES['pic_icon']['name'];
        if (
$_FILES['pic_icon']['type'] == "image/gif") {
             
move_uploaded_file($_FILES['pic_icon']['tmp_name'],$uploadfile);
}else{
     print 
"no mandó";

}
break;
}


Existen otros case entre este, pero no los escribí.
  #6 (permalink)  
Antiguo 07/03/2005, 14:49
Avatar de hunab  
Fecha de Ingreso: febrero-2005
Ubicación: Barcelona
Mensajes: 133
Antigüedad: 19 años, 1 mes
Puntos: 1
aparentemente el script es correcto, lo que veo es que esta no es una dirección válida, ten en cuenta que para php dentro de un string una barra invertida indica un carácter de escape, asi que posiblemente el error resida en esta linia, te recomiendo utilizar barras normales (/) para las rutas:
$uploaddir = "C:\AppServ\www\CLA\images\\";
__________________
Marcio Barrios
marciobarrios.com // artículos sobre estándares y desarrollo web

Última edición por hunab; 07/03/2005 a las 14:52
  #7 (permalink)  
Antiguo 07/03/2005, 19:31
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Mira ...

Como bien dice hunab yo tampoco veo ningún problema en el script solo ese comentario que el te hace. Si vas a usar las barras invertidas hazlo de esta forma:
Código PHP:
 $uploaddir "C:\\AppServ\\www\\CLA\\images\\"
o de lo contrario
Código PHP:
 $uploaddir "images/"
si sigue sin funcionarte pon todo el código aquí para poder ayudarte.
Salu2
__________________
Ing. Reynier Pérez Mira
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 23:26.