2008-10-10 14 views
33

Tengo una aplicación .asp donde los archivos de imagen (.PDF) se almacenan en un directorio (alimentado por una copiadora/escáner). Los nombres de archivo creados se almacenan en una tabla de base de datos. Cuando se lanza una consulta desde la página web, se crea un enlace al archivo. Cuando se hace clic en la imagen debe mostrarse. Esta funcionalidad funciona al 100% en Internet Explorer. No hay tanta suerte en Firefox (y tengo algunos usuarios de Firefox). El hipervínculo creado se parece a esto file://Server/Scanner/XYZ.pdfFirefox Los enlaces a páginas locales o de red no funcionan

el Firefox ayuda a sugerir que la razón es la siguiente:

Links to local or network pages do not work. As a security precaution, Firefox forbids sites on the Internet to link to files that are stored in your local computing environment. These files may include files on your computer, mapped network drives, and UNC network paths

Ninguna de las sugerencias para solucionar este problema parece funcionar (o yo no soy la comprensión de los pasos para crear la visualización de la imagen) ¿Alguna sugerencia?

+0

No tengo acceso a otro servidor en este momento, pero en un recurso compartido local mi solución funciona. – alexandrul

+0

2014-04-14 (FF29) https://bugzilla.mozilla.org/show_bug.cgi?id=995943#c5 "eliminamos todo el subsistema capability.policy. Así que esto ya no va a funcionar". – leo

Respuesta

0

no debería realmente almacenar las páginas en su directorio de aplicaciones y hacer referencia a ellas de esta manera. http://SITENAME/Server/scanner/XYZ.pdf.

Hacemos algo similar con los archivos almacenados en un solo directorio y almacenamos el nombre del archivo. luego creamos el enlace usando el nombre de la carpeta conocida y anexamos el nombre del archivo. esto funciona bastante bien

Finalmente, Firefox es mucho más anal sobre las direcciones de las barras en los nombres de los archivos. Asegúrese de que sean todos '/' en lugar de '\'.

Espero que esto ayude.

+0

Los archivos no están en un directorio de la aplicación. Ellos residen en un servidor separado. Tengo la misma configuración que tienes. ¿Puedes verificar que puedes producir una imagen usando Firefox? Si se muestra ¿puede describir cómo eludió el control de seguridad que desactiva esta funcionalidad? – Joe

+0

¿puede hacer referencia al servidor por dirección IP? si tiene acceso al servidor, puede crear la carpeta de archivos almacenados en un sitio web en IIS y acceder a ellos mediante la dirección IP del servidor. –

1

En su lugar, puede leer el archivo del disco y luego enviarlo en la respuesta desde su página.

Vea esto link para un ejemplo.

+0

Suena interesante .... ¿tiene un ejemplo de cómo se hace eso? – Joe

+0

ver el enlace en mi respuesta. Tienen un bloque de código fuente que muestra cómo. Google "asp response file" y encontrarás más ejemplos. – Geoff

+0

¡¡Funcionó !!! Gracias. Fyi todas las soluciones que intentaron cambiar la configuración del navegador no funcionaron – Joe

14

ACTUALIZADO

1.5.x Firefox o más reciente

Búsqueda de la carpeta de perfil de Firefox en su disco duro, por ejemplo, (12345678 representa ocho dígitos y letras al azar):

  • Windows: "C: \ Documents and Settings \ nombre de usuario \ Datos de programa \ Mozilla \ Firefox \ Profiles12345678.default \"
  • Linux: "/ home/nombre de usuario/.mozilla/firefox/12345678.default /"
  • OS X:/Application Support/nombre de usuario/Library/Firefox/Perfiles/12345678.default/

En esta carpeta crear un archivo de texto con el nombre user.js. Escriba la siguiente línea en ese archivo de texto:

user_pref("capability.policy.default.checkloaduri.enabled", "allAccess");

funciona en mi PC (Firefox 3.0.3 y 19.0 beta) con las siguientes referencias:

  • <img src="file://///server/share/image.png" />
  • <img src="file://\\\server\share\image.png" />
  • <img src="file://d:\image.png" />
  • <img src="file:///d:\image.png" />
  • <img src="file://d:/image.png" />
  • <img src="file:///d:/image.png" />
  • <img src="file://localhost/d:/image.png" />

Además, si está utilizando el complemento NoScript, marque la opción Advanced \ Trusted \ Allow local links.

+1

Esto es lo mismo que la respuesta de Marko Dumic, pero la suya es más fácil para un usuario final, mientras que esta es más fácil (tal vez no mejor) para una aplicación externa. – sep332

+1

La respuesta de Marko Dumic no funcionó en mi caso (Firefox 3.0.3 + Windows Server 2003 R2 SP2). – alexandrul

+1

¡¡Funcionó, gracias !! – kolypto

30

Este es el comportamiento predeterminado de Firefox diseñado para la seguridad. La suposición es probablemente que la mayoría de los sitios web no saben qué ni dónde están sus archivos locales (incluidas las rutas UNC).

Esto podría ser desactivada en Firefox:

  • tipo "about: config" en la barra de direcciones y aceptar "Voy a tener cuidado"
  • encontrar "security.checkloaduri" en versiones anteriores o "security.fileuri.strict_origin_policy" en las últimas versiones de Firefox y cambiar el valor a "falso"
  • reiniciar Firefox

Eso debería hacerlo por usted. Tienes más información aquí:

+0

Tropezamos con esto. Esto no funciona para mí en Firefox 3.0.12 por alguna razón. Cuando paso el mouse sobre el camino en Firebug, veo la miniatura de la imagen, así sé que el camino es bueno. ¿Qué más podría ser? – Scott

+2

¿Estás seguro de que esto todavía funciona? Seguí tus instrucciones en firefox 13.0.1 (Linux) y 13.0 (windows). La consola de errores todavía me da un error de seguridad: 'El contenido en no puede cargar o enlazar al archivo: /// ' La respuesta de @ryandrul funciona. – Sebastian

+0

@Sebastian Funcionó en 2008. No estoy seguro acerca del Firefox actual. –

2

Puede cargar el LocalLink de Firefox, lo que le permite hacer clic derecho sobre un enlace local y seleccione 'Abrir en primer plano Ventana'. Se supone que los otros elementos de menú 'Abrir ...' funcionan, pero no para mí.

http://locallink.mozdev.org/

Además, se puede utilizar NoScript, como sugiere Alex, que permite hacer clic normal de enlaces locales. Gracias Alex.

0

tenga cuidado de la incompatibilidad con gmarks (barra de herramientas de google sustituto) tanto el enlace local como el administrador de políticas funcionaron para mí; enlace local es un poco más suave, gestor de políticas le da más control

1

Toneladas de gracias estaba buscando esta solución ya meses,

:: esta cosa funcionó ::

Esto podría ser desactivada en Firefox :

* type "about:config" in the address bar and accept "i'll be careful" 
* find "security.checkloaduri" in older versions or "security.fileuri.strict_origin_policy" in newer versions of firefox and change the value to "false" 
* restart firefox 

::::

+1

No funciona en Firefox 55. – icl7126

2

solución de Marko debería funcionar para los enlaces que están también en el sistema de archivos local, pero no creo que s debería permitir que una página http: // se vincule a una página file: //.

El problema para las personas que unen de http: // páginas se discute aquí: http://kb.mozillazine.org/Links_to_local_pages_do_not_work junto con una explicación de cómo evitarlo y se exponga al riesgo.

0

file://localhost///servername/share/file.txt funciona para mí en FF11

(a partir de un archivo HTML local: file:///C:/index.html)

7

Lectura en la solución dada aquí, he seguido el enlace Links to local pages do not work y para mí, sólo que esta funcionado bien (soy utilizando WordPress para un FAQ personal en una instalación WAMP local):

  • ir a su "% sus documentos & Ajustes% \ datos de programa \ Mozilla \ Firefox \ Profiles \% su perfil% \"
  • editar el archivo "prefs.js"
  • añadir las siguientes líneas al final del documento:

.

user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess"); 
user_pref("capability.policy.localfilelinks.sites", "http://localhost"); 
user_pref("capability.policy.maonoscript.javascript.enabled", "allAccess"); 

Puede dejar el ajuste "security.checkloaduri" a su valor por defecto, y también el "security.fileuri.strict_origin_policy". Gracias a esas 3 líneas, solo hace una excepción para su servidor local.

Tenga cuidado, si necesita volver al archivo prefs.js, tenga en cuenta que Firefox lo habrá ordenado alfabéticamente. Entonces las 3 líneas que habrá agregado al final estarán en algún lugar al principio;).

+3

Creo que te pierdes la definición de la política 'localfilelinks' (mira http://www.mozilla.org/projects/security/components/ConfigPolicy.html)' user_pref ("capability.policy. policynames "," localfilelinks ");' –

+0

¿Qué hace la línea 'maonoscript'? ¿O se suponía que eran 'nombres de políticas' como sugiere Micha? –

Cuestiones relacionadas