Foros del Web » Programando para Internet » PHP »

Este si es un verdadero problema con el move_uploaded_file()

Estas en el tema de Este si es un verdadero problema con el move_uploaded_file() en el foro de PHP en Foros del Web. Amigos, yo coloque un mensaje parecido a este pero en realidad no tuve respuesta alguna, probablemente podría haber sido la falta de comprension en el ...
  #1 (permalink)  
Antiguo 02/05/2005, 10:20
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 13 años, 11 meses
Puntos: 2
Este si es un verdadero problema con el move_uploaded_file()

Amigos, yo coloque un mensaje parecido a este pero en realidad no tuve respuesta alguna, probablemente podría haber sido la falta de comprension en el mismo. Ahora tengo un problema diferente y es que mi proveedor me tiene en un problema, mi script que uso para subir imagenes esta funcionando en su totalidad (que en realidad aqui se los dejo como para que revisen.

Código PHP:
<?
$escImg 
= array('','','','','','','','','','','','');
 
// Peticion de subir imagenes
  
for($z=0$z<=$ru$z++) {
  
$p $z+1;
   
$filex "eImg$z";
   
$filex_name $_FILES[$filex]['name'];
   
$filex_type $_FILES[$filex]['type'];
   
$filex_tmp  $_FILES[$filex]['tmp_name'];
   
$filex_size $_FILES[$filex]['size'];
    if(!empty(
$filex_name)) {
     
// Comprobando el tipo de archivo
      
if (!((strpos($filex_type"gif")   || strpos($filex_type"jpeg")))) {
    echo 
"
    <script language=\"javascript\" type=\"text/javascript\">
     <!--
      alert('"
;
      echo 
"El archivo ".$_FILES[$filex]['name']." deben se solamente en formato GIF ó JPG. \\n ";
      echo 
"'); \n history.back(-1); \n  //--> \n </script>";
    exit;
      } else {
       
$str_ext strpos($filex_type"jpg");
      }
     
// Comprobando el tamaño
     
$mxsize _3X_MXSIZE*1000;
      if(
$filex_size $mxsize) {
    echo 
"
    <script language=\"javascript\" type=\"text/javascript\">
     <!--
      alert('"
;
      echo 
"El archivo ".$filex_name." excede de "._3X_MXSIZE."KB como tamaño permitido. \\\n ";
      echo 
"'); \n history.back(-1); \n //--> \n </script>";
    exit;   
      }
     
// Si el archivo superó las pruebas anteriores, se procede a renombrar el archivo
     // para luego subirlo.
     
$fb=$eName$fe=rand(0,999);
     
$fn=$fb.'-'.$fe;
     
$intpic $fn.'.'.$str_ext;
     @
chmod(_3X_IMGPATH.'/gallery/',0777);
     
// Ahora si viene lo que se quiere, subir imagenes, primero se comprueba el archivo    
    
if(!move_uploaded_file($filex_tmp_3X_IMGPATH.'/gallery/'.$intpic)) {
      echo 
"
      <script language=\"javascript\" type=\"text/javascript\">
    <!--
     alert('No se pudo subir los siguientes archivos: \\n "
;
     echo 
$filex_name."\\\n";
     echo 
"');
     history.back(-1);
    //-->
      </script>
      "
;
      exit;
    }
    
$escImg[$p] = $intpic;
    }
      
   }
?>
Al realizar la funcion move_uploaded_file() me aparece el problema de:

Warning: move_uploaded_file(): open_basedir restriction in effect. File(/home/intimat/public_html/images/gallery/Angiesita-70.jpg) is not within the allowed path(s): (/home/intimat/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home2/intimat/public_html/admin/include/add.php on line 71

Mi proveedor dice que los valores asignados en open_basedir son correctos, esto es lo que dicen ellos, no se que opinan ustedes:

Directiva establecida en PHP.INI:

open_basedir
- Valor local: /home/alturawe/:/usr/lib/php:/usr/local/lib/php:/tmp
- Valor maestro: no value

No se si esto sea verdad o no, y el directorio donde sube los archivos tiene permisos 777 y el script sigue sin funcionar!!!



Llevo mas de 3 días intentando solucionarlo, pero que hago entonces, alguien me podria ayudar con este problema, si revisan el script este está bien, agradecería la ayuda amena posible a este problema...
__________________
Ahora T4X es
WinGFX!!!!!
  #2 (permalink)  
Antiguo 02/05/2005, 12:10
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 5 meses
Puntos: 0
pareciera ser problema de permisos, creo que del hosting donde estas.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #3 (permalink)  
Antiguo 03/05/2005, 06:36
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Creo es un problema de que no encuentra la carpeta donde lo quieres colocar finalmente, ó no encuentra el archivo que quieres mover... quizá antes debas poner un is_uploaded_file(): http://www.php.net/is_uploaded_file

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 03/05/2005, 15:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Quita la @ de @chmod(_3X_IMGPATH.'/gallery/',0777);

tal vez ahí veas algún mensaje de error ..por ejemplo que no se ha podido crear esa carpeta que es donde posteriormente pretendes mover el archivo a dicha ruta.

De hecho no tiene mucho sentido crear constantemente (a cada pasada de tu bucle) ese directorio donde vas a mover tus archivos .. en su defecto crealo fuera de tu bucle (for()) y sólo si no existe ya .. para eso puedes comprobar su existencia usando is_dir().

Sobre el tema open_base_dir .. en tu error dice:
/home/intimat/....
Y las rutas permitidas dice:
/home/alturawe/

Revisa los valores de $filex_tmp como ruta origen (debería ser algo tipo /tmp/8789asdf.jpg o algo así como nombre aleatorio que dá PHP al subir un archivo) y _3X_IMGPATH.'/gallery/'.$intpic por la ruta destino ... Sobre todo el valor de esa constante (_3X_IMGPATH) que no vemos que valor toma realmente ..


Un saludo,
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 13:23.