Foros del Web » Programando para Internet » PHP »

Mover archivo después de upload

Estas en el tema de Mover archivo después de upload en el foro de PHP en Foros del Web. Buenas. Estoy intentando mover un archivo después de subirlo por un formulario. La carpeta de destino tiene bien los permisos de escritura, la ruta está ...
  #1 (permalink)  
Antiguo 09/08/2007, 16:36
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Mover archivo después de upload

Buenas.

Estoy intentando mover un archivo después de subirlo por un formulario.

La carpeta de destino tiene bien los permisos de escritura, la ruta está bien, la función está bien... Pero da error.

Código PHP:
$archivo "../../imagenes/usuarios/avatares/".$HTTP_POST_FILES['avatar']['name'];
move_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'], $archivo
Incluso, intentado subirlo al mismo directorio donde está el script (sin especificar carpeta), me da el mismo error que si lo hago indicando carpeta (y esta, también tiene bien los permisos), cosa muy rara.

El error es este:
Cita:
Warning: move_uploaded_file(../../imagenes/usuarios/avatares/5cDI4dDf12.gif): failed to open stream: No such file or directory in /var/www/vhosts/web.com/httpdocs/newWeb/mods/usuario/reg.c.php on line 29
Warning: move_uploaded_file(): Unable to move '/tmp/phpDgxCQ5' to '../../imagenes/usuarios/avatares/5cDI4dDf12.gif' in /var/www/vhosts/web.com/httpdocs/newWeb/mods/usuario/reg.c.php on line 29
Un saludo, y gracias.
  #2 (permalink)  
Antiguo 09/08/2007, 18:01
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Mover archivo después de upload

antes de ese codigo pordiras agregar

if(!is_dir("../../imagenes/usuarios/avatares/"))
mkdir("../../imagenes/usuarios/avatares/");

con eso te aseguras q exista el directorio
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 09/08/2007, 18:12
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Mover archivo después de upload

Haciendo eso, me dice que no tengo permisos.

Cita:
Warning: mkdir(../../imagenes/usuarios/avatares/): Permission denied in /var/www/vhosts/web.com/httpdocs/newWeb/mods/usuario/registro.php on line 21
Lo he hecho sin comprobar que exista el directorio (que de hecho, existe). Lo he borrado y he ejecutado registro.php y me muestra ese error.
  #4 (permalink)  
Antiguo 09/08/2007, 21:23
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Re: Mover archivo después de upload

Hola,

Yo lo he logrado con la función copy.
copy($_FILES['ruta']['tmp_name'],"ubicacion de destino")
Donde "ruta" es el nombre del campo que recibe el archivo.

Espero que te ayude.
  #5 (permalink)  
Antiguo 10/08/2007, 03:38
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Mover archivo después de upload

Gracias.

Usando copy(), e intentándolo en el mismo nivel que archivo (en carpeta con CHMOD 777), me ocurre esto:
Cita:
Warning: copy(avatar.gif): failed to open stream: Permission denied in /var/www/vhosts/web.com/httpdocs/newWeb/mods/usuario/registro.php on line 29


¿Puede ser que tenga que ver con el usuario en el servidor, grupos y permisos de cada cual? Aunque claro, es extraño.
  #6 (permalink)  
Antiguo 10/08/2007, 10:24
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Mover archivo después de upload

Pues lo permisos no es. He comprobado que el usuario de apache y grupos y demás está todo en orden.

Ahora me he dado cuenta de una cosilla, un tanto rara.

Si ejecuto el script directamente, funciona. Pero en la web uso el mod rewrite de apache, y, el script a ejecutar tiene un nivel mas (carpetas) que la ruta para acceder a él los usuarios, y poniendo luego para ejecutar desde el usuario un nivel menos (../ en vez de ../../) me da ese error.

La verdad es que se me hace muy extraño, ya que PHP no tiene nada que ver con el mod rewrite. Se el usuario llama a /usuario/registro, PHP va a ejecutar /mods/usuarios/registro.php, y tendré que partir de ahí para poner la ruta a la carpeta a la cual quiero hacer el upload.

Pero, haga lo que haga, da error. Pero si ejecuto desde el script, no da error. ¿Qué puede ser?
  #7 (permalink)  
Antiguo 10/08/2007, 17:56
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Mover archivo después de upload

¿Alguien sabe qué puede pasar?
  #8 (permalink)  
Antiguo 11/08/2007, 06:23
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Mover archivo después de upload

Bueno, al final lo he solucionado poniendo la ruta completa del servidor.

Código PHP:
$archivo '/var/www/vhosts/web.com/httpdocs/newWeb/mods/usuario/'.$HTTP_POST_FILES['avatar']['name'];
move_uploaded_file($HTTP_POST_FILES['avatar']['tmp_name'], $archivo
A saber cual era el problema.
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 14:12.