Estoy buscando una forma de (fácilmente, por preferencia;)) crear un enlace de descarga a un archivo en un servidor de archivos por separado.Creación de enlace de descarga a un archivo en un servidor de archivos
La situación es la siguiente: la aplicación que estoy desarrollando (asp.net 2.0 en vb.net pero tengo un problema similar en C#, cualquiera de las soluciones funciona para mí) se ejecutará internamente para una empresa. Como es una buena práctica, el almacenamiento de archivos y la aplicación web están en dos servidores separados.
básicamente tengo que ser capaz de crear un enlace de descarga a un archivo, el único URL disponible que tengo que acceder al archivo es \ servidor \ carpeta1 \ carpeta2 \ carpeta3 \ archivo.txt (puede ser cualquier tipo de archivo)
Los enlaces de correo electrónico simplemente no funcionan. Así es como está configurado actualmente:
tablerowfield.Text = String.Format(
"<a href=""\\servername\folder1\folder2\folder3\{0}""
target=""_blank"">Click me</a>",
filename)
Lo que no funciona por razones obvias. Solía estar configurado para escribir ese archivo en la propia ruta de la aplicación y funcionó perfectamente, pero no es una buena práctica y es por eso que lo estoy cambiando (o intentando).
Leo soluciones sobre cómo crear una página de descarga y luego tener una tabla en su base de datos que contiene los enlaces y devuelve la URL web adecuada para descargar, pero la restricción de tiempo que me toca desafortunadamente no me permite desarrollar eso.
Suponiendo que puedo proporcionar una cadena con el camino de archivo completo al archivo como el anterior, ¿cuál es la forma más fácil de crear un enlace que, al hacer clic, descarga el documento?
Nota: Tengo 0 derechos de administrador en este entorno. Eso realmente no me está ayudando. Supongamos que me dan el enlace correcto como el anterior y tengo los derechos de acceso a los archivos adecuados.
ACTUALIZACIÓN:
El ejemplo anterior funciona en IE, pero no en Firefox y Chrome. IE lo convierte en un enlace file: // servername/... que hace lo que se supone que debe hacer, pero tanto FF como Chrome decidieron activamente que esto no es seguro y lo han desactivado de sus navegadores.
Ok me dieron el manejador de trabajo, pero me mantiene gving errores en el Response.WriteFile. Ingresé una cadena de forma "\\ server \ folder \ file.txt" y obtengo: Error al mapear la ruta '/server/folder/file.txt' Intenté todos los archivos posibles. ¿Alguna experiencia en este tema? – Flater
Puede pasar el parámetro como file = abc.txt para el primer enlace, file = otherfile.txt, etc., como ya he mencionado. Por lo tanto, obtendrá los nombres de los archivos dinámicamente y los pasará al archivo ASHX. Necesita un archivo ASHX para que el usuario pueda descargarlo desde allí (su dominio) en lugar de usar la ruta del servidor que no existe en el lado del cliente (si no está en la LAN) – wasimbhalli
Omitir mi publicación anterior. Solo puedo soltar el servidor .Mappath y luego funciona :) todavía un poco borroso al finalizar esto, pero me has ayudado muchísimo. ¡Gracias! – Flater