Puede que la pregunta resulte algo tonta, pero como soy nuevo en php (vengo de asp) ahi va: ¿como recoger el path de un archivo enviado mediante un campo file de un formulario?
GRACIAS
| |||
path de archivo en campo file Puede que la pregunta resulte algo tonta, pero como soy nuevo en php (vengo de asp) ahi va: ¿como recoger el path de un archivo enviado mediante un campo file de un formulario? GRACIAS |
| |||
No estoy seguro pero el array $_FILES[][] no da el path esta es la explicacion que da http://www.programacion.com/php/articulo/datos_blob/ sobre el array files $_FILES['archivito']['name'] Es el nombre original del archivo. $_FILES['archivito']['type'] El tipo MIME del archivo,.. image/gif, application/pdf, application/msword,.. etc $_FILES['archivito']['size'] El tamaño del archivo en bytes. $_FILES['archivito']['tmp_name'] La ubicación del archivo temporal que se crea cuando se sube un archivo al servidor. Es en esta variable de donde se leen los datos del archivo en sí. Si estos datos no son copiados o movidos a otro lugar, o en nuestro caso, almacenados en una base de datos, se pueden perder, ya que PHP elimina este archivo después de un determinado tiempo. El path lo tienes de conocer tu , aparte para guardarlo lo tiens de poner como este ejemplo $uploaddir = '/ruta/directorio/uploads/'; move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile'] ['name']) Anuque puedes conocer el path de la carpeta publica con esta variable $dir_htms = $HTTP_SERVER_VARS['DOCUMENT_ROOT']; espero que te sirva un saludo |
| |||
Mmmmm... la cosa es poder mostrar en el navegador una imagen del usuario antes de subirla al server (y no despues). No obstante, por lo que he podido leer por ahi no es posible recuperar el path, ya que esto revelaria informacion sobre el sistema de archivos del usuario y se podria hacer un uso malintencionado. Por favor, si alguien cree que esto no es cierto que me corrija y al ser posible, que me de una solucion. |
| |||
en esta URl tiens un post que trata de que el ususario vea la imagen que va a subir, antes del upload, miralo a ver si te sirve http://www.forosdelweb.com/s/msg151761.html |
| |||
jejeje, ese hilo es mio. El problema es como recoger el path del usuario. Es decir: Un usuario quiere subir la imagen gatito.jpg que esta en: c:\imagenes\gatito.jpg . ¿Como conseguir esa direccion? Por lo que veo, el path (c:\imagenes) esta oculto y no se puede recuperar, solo el nombre del archivo (gatito.jpg). |
| |||
Bueno si el escribe el path en una caja de texto, la puedes recibir por una variable $_POST[]; Imagino que el sistema de archivos del usuario estara protegido para que no lo pueda recuperar nadie , si no imaginate, los webmastres podriamos saber toda la estructura de archivos del usuario. |
| |||
Pues yo utlizo javascript para paserte ese path a php... Lo que hago es asignarle a un campo oculto la cadena que aparece en el campo file, entonces por un lado tengo el archivo en si (que lo recupero con las variables de php $_FILES[]) y por otro una cadena con el path:
Código:
Ahora tienes una variable $_POST['ruta'] con lo que necesitas.<html> <head> <script LANGUAGE="JavaScript"> function oculto() { document.upform.ruta.value = document.upform.uploadfile.value; } </script> </head> <body> <p>Selecciona el archivo.</p> <form method="post" name="upform" action="index.php" enctype="multipart/form-data" onSubmit="return oculto()"> <p> <input type="file" name="uploadfile"> <input type="hidden" name="ruta" value=""> <br> <input type="submit" value="Enviar"> </p> </form> </body> </html> Saludos! |
| |||
lo que no entiendo y perdonadme es porque se necesita saber la ruta del archivo que ha subido el cliente, igualmente no se le puede descargar, y el lo puede borrar en cualquier momento? me gustaria saberlo un saludo |
| |||
A veces Jordi1 .. no se hacen aplicaciones que corren para la "web" caso es .. "Intranets" .. donde la ubicación de archivos en la Red en cuestión es crucial para organizar archivos o crear "buscadores" a traves de tus aplicacioens basadas en PHP y algún motor de BD .. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Bueno, si os intriga el uso de esto os lo explico. El caso es que estoy haciendo un script para subir imagenes al servidor y el caso es que estas imagenes estan pensadas que ocupen bastante (600k en adelante). Entonces seria una p utada que el usuario subiera directamente su imagen y al mostrarla el servidor, viera que se ha equivocado de imagen (algo tipico con los nombres que dan las camaras digitales del tipo image_0001.jpg). Es por eso que me interesaria que antes de subirla se pudiera ver con una url relativa a su pc (solo interesa que lo vea el). Probare el codigo de fran, pues puede ser interesante. |
| |||
El codigo javascript funciona a la perfeccion, muchas gracias. Sin embargo, tengo un nuevo problema: Si en el nombre del archivo o el path hay un espacio (c:\mis documentos\ por ej.) El script recupera (c:\mis) es decir solo hasta el espacio. ¿Sabeis como solucionarlo? GRACIAS |