una - ¿Recuperando la ruta completa(lado del servidor) de un archivo cargado con Firefox?
proxy mozilla firefox (3)
Cuando <input id="myFile" type="file" runat="server" />
un formulario que contiene <input id="myFile" type="file" runat="server" />
para cargar un archivo, mi código del lado del servidor solo ve el nombre del archivo sin la ruta completa cuando usa Firefox, mientras funciona bien en IE.
¿Es posible recuperar la ruta completa del servidor en este caso?
Nunca puede estar seguro de obtener un archivo completo o incluso un nombre de archivo confiable o tipo de contenido enviado en un archivo de carga de archivos. Incluso si obtiene un camino de archivo completo, no sabe cuál es el carácter separador de ruta en el sistema operativo del cliente, o si una extensión de archivo (si está presente) denota algo en absoluto.
Si su aplicación requiere la ruta de archivo / nombre de archivo / tipo de contenido de un archivo enviado para algo más que darle al usuario un título predeterminado para el elemento cargado, está haciendo algo mal y será necesario corregirlo.
Ya lo dije en un comentario, pero creo que vale la pena repetirlo.
Microsoft optó por hacer que el control de archivos proporcione la ruta completa al archivo para su uso en aplicaciones de intranet.
La especificación HTML solo menciona lo que el valor debe contener en un solo lugar:
Los agentes de usuario pueden usar el valor del atributo de valor como nombre de archivo inicial.
Sin embargo, también tienen ejemplos de cómo debería ser la codificación multipart / form-data, y no contiene la ruta del archivo.
En otras palabras, IE está incumpliendo el estándar y no puede confiar en otros navegadores, incluso en versiones posteriores de IE, para admitirlo.
No puedes. En realidad, solo IE proporciona esta información que no es importante para el servidor en la mayoría de los casos. Ni FF ni Opera, al menos, proporcionan esta información.
[ACTUALIZACIÓN] También se intentó con Safari, todavía no hay ruta ... Alguien informó que Chrome podría proporcionar la información, aunque sea una versión beta, eso podría cambiar ...
Quizás pueda necesitarlos en algunos casos de intranet. En tal caso, puede pedirle al usuario que pegue la ruta en un campo de entrada secundario ... No muy amigable, pero al menos sabrán que proporcionan la información.
En realidad, sé que algunas personas necesitaban esta información por alguna razón, por lo que utilizaron JavaScript para elegir la ruta desde el campo de entrada del archivo y colocarla en un campo oculto. Los desarrolladores de FF descubrieron que era inseguro (se puede aprender mucho de un camino simple ... ¡como el nombre de inicio de sesión del usuario!), Por lo que se prohíbe su uso en FF3, lo que hace que algunas personas se enojen con este lanzamiento ...
Referencias: cuadro de carga de archivos de Firefox 3 mencionado en la molestia de Firefox 3: Inhabilitación de inserción en el control de carga de archivos ... ; también el cuadro de entrada Archivo deshabilitado conduce a un gran problema de usabilidad , entre muchos otros.