Foros del Web » Programando para Internet » PHP »

Problemas en move_uploaded_file

Estas en el tema de Problemas en move_uploaded_file en el foro de PHP en Foros del Web. Hola estoy tratando de subir un fichero a un directorio concreto en el servidor. El error que me sale es este: Warning: move_uploaded_file(/home/lagerber/public_html/pruebas/pruebas2/images/articulos/Textil/Baules.bmp) [function.move-uploaded-file]: failed ...
  #1 (permalink)  
Antiguo 01/08/2007, 05:38
 
Fecha de Ingreso: agosto-2005
Mensajes: 22
Antigüedad: 18 años, 8 meses
Puntos: 0
Problemas en move_uploaded_file

Hola

estoy tratando de subir un fichero a un directorio concreto en el servidor. El error que me sale es este:

Warning: move_uploaded_file(/home/lagerber/public_html/pruebas/pruebas2/images/articulos/Textil/Baules.bmp) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/lagerber/public_html/pruebas/pruebas2/gestion/enviar_alta.php on line 51

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpvq0Jmt' to '/home/lagerber/public_html/pruebas/pruebas2/images/articulos/Textil/Baules.bmp' in /home/lagerber/public_html/pruebas/pruebas2/gestion/enviar_alta.php on line 51
There was an error uploading the file, please try again!

El código que procesa la subida del fichero es este:

$target_path = "/home/lagerber/public_html/pruebas/pruebas2/images/articulos/$categoria/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $HTTP_POST_FILES['archivo']['name']);

if(move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], "$target_path")) {
echo "The file ". basename( $HTTP_POST_FILES['archivo']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}

Logicamente el error parece producido porque no es posible mover el fichero al directorio determinado. Ambos directorios, origen y destino (temp/ y pruebas/) tienen permisos 777.

La verdad es que estoy bloqueado porque no se donde puede estar el error.

Cualquier aportación será bien recibida...

Slds y gracias
  #2 (permalink)  
Antiguo 01/08/2007, 23:43
Avatar de daniloquispe  
Fecha de Ingreso: mayo-2007
Mensajes: 38
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas en move_uploaded_file

OK con los permisos de los directorios, pero... ¿revisaste también los permisos del archivo que tratas de subir? A mí esa función move_uploaded_file() me ha causado varios dolores de cabeza por eso.

O a veces era porque en el servidor ya existe un archivo con el mismo nombre que el archivo que trataba de subir.
  #3 (permalink)  
Antiguo 02/08/2007, 09:46
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: Problemas en move_uploaded_file

El directorio está bajo el root del servidor de Web?

Chaop!
__________________
Visita www.legionlandrover.com
  #4 (permalink)  
Antiguo 02/08/2007, 11:05
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Problemas en move_uploaded_file

Si te sirve de algo hace 2 días implementé una función donde tenía que incluir ficheros del tipo .xml y .html (plantillas) a una carpeta plantillas ubicada en la carpeta www del servidor EasyPHP (PHP+Apache+MySQL).

Te puedo decir que para usar mov_uploaded_file el dato de la izquierda es la ubicación temporal que tiene el fichero y no la original y la de la derecha es la ubicación final que va a tener en el servidor.

Si te das cuenta previamente hacía una llamada a la función is_uploaded_file que significa una cosa así como que si el fichero ha sido cargado ya en la carpeta temporal del servidor (en el EasyPHP esta carpeta se ubica en root/temp/...

if( is_uploaded_file( $HTTP_POST_FILES['plantilla']['tmp_name']) ){

//Mover de la carpeta /tmp/ a la carpeta /www/plantillas/

move_uploaded_file( $HTTP_POST_FILES['plantilla']['tmp_name'], "$doc_root/plantillas/$nombre" );

...

Espero que te haya servido de algo mi comentario
  #5 (permalink)  
Antiguo 02/08/2007, 11:08
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Problemas en move_uploaded_file

Cita:
Iniciado por dasan Ver Mensaje
Hola



El código que procesa la subida del fichero es este:

$target_path = "/home/lagerber/public_html/pruebas/pruebas2/images/articulos/$categoria/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $HTTP_POST_FILES['archivo']['name']);

/********** Creo que el error está aquí *****************/

¿Por qué no pruebas a controlar antes con éste if() ?
if( is_uploaded_file( $HTTP_POST_FILES['archivo']['tmp_name']) ){

if(move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], "$target_path")) {
echo "The file ". basename( $HTTP_POST_FILES['archivo']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}

Logicamente el error parece producido porque no es posible mover el fichero al directorio determinado. Ambos directorios, origen y destino (temp/ y pruebas/) tienen permisos 777.

La verdad es que estoy bloqueado porque no se donde puede estar el error.

Cualquier aportación será bien recibida...

Slds y gracias
  #6 (permalink)  
Antiguo 02/08/2007, 11:33
Avatar de daniloquispe  
Fecha de Ingreso: mayo-2007
Mensajes: 38
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas en move_uploaded_file

Prueba usando $_FILES en vez de $HTTP_POST_FILES, es más seguro que funcione.
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 03:09.