Foros del Web » Programando para Internet » PHP »

adjuntar archivo

Estas en el tema de adjuntar archivo en el foro de PHP en Foros del Web. Hola a todos! Tengo una pagina en php con un formulario y un boton de adjuntar archivo, lo que pasa es que no sé cómo ...
  #1 (permalink)  
Antiguo 15/01/2008, 02:35
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
adjuntar archivo

Hola a todos!
Tengo una pagina en php con un formulario y un boton de adjuntar archivo, lo que pasa es que no sé cómo hacerlo funcionar para que el archivo que selecciono se guarde en una ruta que yo quiera. Gracias a todos y un saludo
  #2 (permalink)  
Antiguo 15/01/2008, 02:40
 
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 32
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: adjuntar archivo

¡Google es tu amigo!
http://www.php.net/manual/es/features.file-upload.php
  #3 (permalink)  
Antiguo 15/01/2008, 02:43
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: adjuntar archivo

Cita:
Iniciado por _kai_ Ver Mensaje
¡Google es tu amigo!
http://www.php.net/manual/es/features.file-upload.php
jeje, gracias por la rapidez en contestar, lo probaré en cuanto pueda comentaré que tal me ha ido.
  #4 (permalink)  
Antiguo 18/01/2008, 04:45
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: adjuntar archivo

puse lo que ponia en el enlace pero a la hora de enviarlo me sale esto:

Possible file upload attack.
Filename: Output.pdf

El código que uso para verificar el envío es el siguiente:
Código PHP:
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
    
copy($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
} else {
    echo 
"Possible file upload attack. Filename: " $HTTP_POST_FILES['userfile']['name'];

A ver si alguien sabe que falla y como arreglarlo. Gracias
  #5 (permalink)  
Antiguo 18/01/2008, 09:34
 
Fecha de Ingreso: septiembre-2007
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: adjuntar archivo

manda el codigo completo y te mando la solucion...
  #6 (permalink)  
Antiguo 18/01/2008, 09:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: adjuntar archivo

tu error esta en el sitio donde vas a colocar el archivo cargado... mira..

Código:
 copy($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
/place/to/put/uploaded/file es tu sitio en el servidor donde lo vas a guardar...
  #7 (permalink)  
Antiguo 21/01/2008, 02:38
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: adjuntar archivo

Hola, cambié el copy por un move. Y ahora tengo este error, que según dice es de permisos. Ya no sé si tengo bien colocadas las barras de la ruta o que le pasa pero no puedo enviarlo. Aqui dejo el error:

Código:
Warning: move_uploaded_file(c:/AppServ/www/prueba) [function.move-uploaded-file]: failed to open stream: Permission denied in C:\AppServ\www\pres_domo-particular.php on line 103

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\AppServ\www\prueba\php2.tmp' to 'c:/AppServ/www/prueba' in C:\AppServ\www\pres_domo-particular.php on line 103
Array ( [userfile] => Array ( [name] => Output.pdf [type] => application/pdf [tmp_name] => C:\AppServ\www\prueba\php2.tmp [error] => 0 [size] => 64580 ) )
Y este es el código:
Código PHP:
if ($_POST) {
    if (
$_FILES['file']['error'] == 0) {
        
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "c:/AppServ/www/prueba");
    }
}
print_r($_FILES); 
dejo solo esta parte del códico porque el resto no hace nada relacionado con lo de los archivos.

Gracias y un saludo
  #8 (permalink)  
Antiguo 21/01/2008, 02:47
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: adjuntar archivo

Cita:
Iniciado por dosell Ver Mensaje
Hola, cambié el copy por un move. Y ahora tengo este error, que según dice es de permisos. Ya no sé si tengo bien colocadas las barras de la ruta o que le pasa pero no puedo enviarlo. Aqui dejo el error:

Código:
Warning: move_uploaded_file(c:/AppServ/www/prueba) [function.move-uploaded-file]: failed to open stream: Permission denied in C:\AppServ\www\pres_domo-particular.php on line 103

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\AppServ\www\prueba\php2.tmp' to 'c:/AppServ/www/prueba' in C:\AppServ\www\pres_domo-particular.php on line 103
Array ( [userfile] => Array ( [name] => Output.pdf [type] => application/pdf [tmp_name] => C:\AppServ\www\prueba\php2.tmp [error] => 0 [size] => 64580 ) )
Y este es el código:
Código PHP:
if ($_POST) {
    if (
$_FILES['file']['error'] == 0) {
        
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "c:/AppServ/www/prueba");
    }
}
print_r($_FILES); 
dejo solo esta parte del códico porque el resto no hace nada relacionado con lo de los archivos.

Gracias y un saludo
Todo apunta a que el usuario bajo el que se ejecuta el servidor web no tiene permisos para escribir en el directorio destino que usas... ¿Has intentado dar control total público al directorio para eliminar esta posibilidad?
  #9 (permalink)  
Antiguo 21/01/2008, 03:11
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: adjuntar archivo

pues... puse esto en el fichero de configuración del php

Código:
  <Directory C:\AppServ\www\prueba>
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
no se si está bien o si es lo que hay que hacer.

Gracias
  #10 (permalink)  
Antiguo 21/01/2008, 03:23
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: adjuntar archivo

si no recuerdo mal eso te permite que cualquier usuario q entre en tu servidor web deje datos en ese directorio... lo q no quiere decir q el usuario q ejecuta el php tenga control total sobre ese directorio... no sé si en windows deberías poner las barras de la otra forma con algo tal que así c:\\AppServ\\www\\prueba en el código de tu PHP. Prueba a ver.

Si no, la otra opción que se me ocurre es asegurarte de que la carpeta prueba tiene todos los permisos...
  #11 (permalink)  
Antiguo 21/01/2008, 03:38
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: adjuntar archivo

Cita:
Iniciado por jaromero Ver Mensaje
si no recuerdo mal eso te permite que cualquier usuario q entre en tu servidor web deje datos en ese directorio... lo q no quiere decir q el usuario q ejecuta el php tenga control total sobre ese directorio... no sé si en windows deberías poner las barras de la otra forma con algo tal que así c:\\AppServ\\www\\prueba en el código de tu PHP. Prueba a ver.

Si no, la otra opción que se me ocurre es asegurarte de que la carpeta prueba tiene todos los permisos...
lo de la carpeta no se donde mirar lo de los permisos, solo me pone "solo lectura" y "oculta". He cambiado las barras en la pagina que tengo hecha con php y nada. el mismo error.
  #12 (permalink)  
Antiguo 21/01/2008, 04:24
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: adjuntar archivo

Cita:
Iniciado por dosell Ver Mensaje
lo de la carpeta no se donde mirar lo de los permisos, solo me pone "solo lectura" y "oculta". He cambiado las barras en la pagina que tengo hecha con php y nada. el mismo error.
En las propiedades de la carpeta, sección Compartir y Seguridad, deberías ver la lista de permisos... trata poner el control total a ver...

Pd: puede q me esté obcecando con eso y no sea ese el problema, pero no se me ocurre qué más sugerirte sin verlo "insitu"...
  #13 (permalink)  
Antiguo 21/01/2008, 04:40
 
Fecha de Ingreso: enero-2008
Mensajes: 20
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: adjuntar archivo

Cita:
Iniciado por jaromero Ver Mensaje
En las propiedades de la carpeta, sección Compartir y Seguridad, deberías ver la lista de permisos... trata poner el control total a ver...

Pd: puede q me esté obcecando con eso y no sea ese el problema, pero no se me ocurre qué más sugerirte sin verlo "insitu"...
no veo ninguna lista de permisos...
  #14 (permalink)  
Antiguo 21/01/2008, 07:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: adjuntar archivo

hey...
es que no es c:/AppServ/www/prueba

es la carpeta en la cual estas trabajando. si tu carpeta raiz se llama prueba entoncs crea una carpeta alli que se llame archivo y coloca

Código:
if ($_POST) {
    if ($_FILES['file']['error'] == 0) {
        move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "archivo/");
    }
}
print_r($_FILES);
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:32.