Foros del Web » Programando para Internet » PHP »

guardar archivos subidos en carpetas creadas por codigo

Estas en el tema de guardar archivos subidos en carpetas creadas por codigo en el foro de PHP en Foros del Web. Bueno, este es mi primer post y la duda que tengo no es nada simple: estoy haciendo una aplicacion web donde un usuario puede subir ...
  #1 (permalink)  
Antiguo 21/08/2008, 08:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 0
guardar archivos subidos en carpetas creadas por codigo

Bueno, este es mi primer post y la duda que tengo no es nada simple:

estoy haciendo una aplicacion web donde un usuario puede subir archivos de texto a un servidor linux. Cada usuario tiene que tener una carpeta en este servidor y todos los archivos que este usuario suba tienen que guardarse en su carpeta.

con este form, realizo la subida de archivos:

<form method=post ENCTYPE='multipart/form-data' action=pagina.php>
<table align=center rules=all border=1>
<tr bgcolor=003377><td><font color=CYAN><strong>SUBIR INFORME<td></tr>
<input type=hidden name=reg value=$username>
<tr><td><input type=file name=informe size=80></td></tr>
<tr><td><input type=submit value=SUBIR></td></tr>
</table>
</form>



en la siguiente pagina, creamos la carpeta del usuario '$username'
<?php
mkdir("uploads/".$username, 0755, true);
/* esto crea la carpeta del usuario con el nombre del usuario y todos los permisos */

Y el problema radica aqui:
move_uploaded_file ($_FILES['informe'] ['tmp_name'],
"/var/www/web1/web/uploads/".$username."/{$_FILES['informe'] ['name']}") )
?>

// y este codigo supuestamente guarda el archivo que hemos subido en la carpeta
que acabamos de crear, pero me devuelve el siguiente error:
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10001 is not allowed to access /var/www/web1/web/uploads/usuario owned by uid 33 in /var/www/web1/web/pagina.php on line 63


si guardo el archivo en otro lugar (no en la carpeta creada para el usuario, sino solamente en "/uploads/archivo.txt") todo funciona correctamente.

¿que puedo hacer, que estoy haciendo mal, como cambio el UID del script?
  #2 (permalink)  
Antiguo 21/08/2008, 09:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: guardar archivos subidos en carpetas creadas por codigo

Hola InfestedART,

Desafortunadamente ese es un problema al usar el safe_mode, cuando tu creas una carpeta se crea bajo otro usuario con otro proceso, por lo que no puedes entrar, a la carpeta.

Te recomiendo desactivar el safe_mode o en dado caso crear las carpetas manualmente via FTP.

Saludos.
  #3 (permalink)  
Antiguo 21/08/2008, 09:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: guardar archivos subidos en carpetas creadas por codigo

Cita:
Iniciado por GatorV Ver Mensaje
Desafortunadamente ese es un problema al usar el safe_mode, cuando tu creas una carpeta se crea bajo otro usuario con otro proceso, por lo que no puedes entrar, a la carpeta.

Te recomiendo desactivar el safe_mode o en dado caso crear las carpetas manualmente via FTP.

Saludos.
Desactivar el SAFEMODE mmmmm.... no es muy conveniente.

¿habra otra forma de crear las carpetas por PHP para que pueda subir los archivos alli?

gracias de antemano
  #4 (permalink)  
Antiguo 21/08/2008, 09:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: guardar archivos subidos en carpetas creadas por codigo

Poniendo a PHP, que se ejecute en el mismo grupo que se ejecuta el servidor web para que compartan el UID.

Saludos.
  #5 (permalink)  
Antiguo 21/08/2008, 09:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: guardar archivos subidos en carpetas creadas por codigo

ok gracias, intentare eso
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 18:07.