36 votes

Firefox Les liens vers des pages locales ou de réseau ne fonctionnent pas

J'ai une application .asp où des fichiers images (.PDF) sont stockés dans un répertoire (alimenté par un copieur/scanner). Les noms des fichiers créés sont stockés dans une table de base de données. Lorsqu'une requête est lancée depuis la page web, un lien vers le fichier est créé. En cliquant dessus, l'image doit s'afficher. Cette fonctionnalité fonctionne à 100% dans Internet Explorer. Pas de chance avec Firefox (et j'ai quelques utilisateurs de Firefox). L'hyperlien créé ressemble à ceci file://Server/Scanner/XYZ.pdf

Le Firefox permet de suggérer que la raison est la suivante :

Les liens vers des pages locales ou de réseau ne fonctionnent pas. Par mesure de sécurité, Firefox interdit aux sites Internet de créer des liens vers des fichiers stockés dans votre environnement informatique local. Ces fichiers peuvent inclure des fichiers sur votre ordinateur, des lecteurs réseau mappés et des chemins d'accès réseau UNC.

Aucune des suggestions de contournement ne semble fonctionner (ou je ne comprends pas les étapes de création de l'affichage de l'image). Des suggestions ?

0 votes

Je n'ai pas accès à un autre serveur pour le moment, mais sur un partage local, ma solution fonctionne.

0 votes

2014-04-14 (FF29) bugzilla.mozilla.org/show_bug.cgi?id=995943#c5 "nous avons supprimé l'ensemble du sous-système capability.policy". Donc ça ne va plus fonctionner."

31voto

Marko Dumic Points 6055

Il s'agit du comportement par défaut de Firefox, conçu pour la sécurité. L'hypothèse est probablement que la plupart des sites Web ne savent pas quels sont vos fichiers locaux et où ils se trouvent (y compris les chemins UNC).

Cela peut être désactivé dans firefox :

  • tapez "about:config" dans la barre d'adresse et acceptez "je ferai attention".
  • trouvez "security.checkloaduri" dans les anciennes versions ou "security.fileuri.strict_origin_policy" dans les nouvelles versions de firefox et changez la valeur en "false".
  • redémarrer firefox

Cela devrait faire l'affaire pour vous. Vous avez plus d'informations ici :

0 votes

Je suis tombé sur ça. Cela ne fonctionne pas pour moi sur Firefox 3.0.12 pour une raison quelconque. Lorsque je passe la souris sur le chemin dans firebug, je vois la vignette de l'image, donc je sais que le chemin est bon. Qu'est-ce que cela pourrait être d'autre ?

3 votes

Êtes-vous sûr que cela fonctionne toujours ? J'ai suivi vos instructions dans firefox 13.0.1 (linux) et 13.0 (Windows). La console d'erreurs me donne toujours une erreur de sécurité : Content at <url> may not load or link to file:///<unc> La réponse de @alexandrul fonctionne.

0 votes

@Sebastian Cela fonctionnait en 2008. Je ne suis pas sûr pour le Firefox actuel.

14voto

alexandrul Points 6775

Firefox >= 68.0.1

Je suis en mesure de prévisualiser dans Firefox des images et des fichiers PDF avec des liens de fichiers locaux en utilisant les paramètres mentionnés ici : https://bugzilla.mozilla.org/show_bug.cgi?id=1303727

J'ai utilisé des liens avec un fichier local : <a href="file://N:/path/to/file.ext">test</a>

et ajouté dans user.js les paramètres mentionnés (avec la liste des sites ajustée) :

user_pref("capability.policy.policynames", "localfilelinks") ; user_pref("capability.policy.localfilelinks.sites", " http://my.intranet ") ; user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess") ;

De plus, lorsque j'ai configuré Firefox pour qu'il " demande toujours " les fichiers PDF, j'ai pu " ouvrir avec " le PDF dans Adobe Acrobat Reader DC, qui a indiqué le dossier local attendu en accédant à " Fichier -> Propriétés ".


Firefox >= 1.5.x < 20 (ish)

Recherchez le dossier du profil Firefox sur votre disque dur, par exemple (12345678 représente huit chiffres et lettres aléatoires) :

  • Les fenêtres : " C:\Documents et paramètres \Username\Application Données \Mozilla\Firefox\Profiles12345678.default\ "
  • Linux : "/home/username/.mozilla/firefox/12345678.default/"
  • OS X : /Username/Library/Application Support/Firefox/Profiles/12345678.default/

Dans ce dossier, créez un fichier texte portant le nom de user.js . Écrivez la ligne suivante dans ce fichier texte :

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

Fonctionne sur mon PC (Firefox 3.0.3) et 19.0 beta ) avec les références suivantes :

  • <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" />

De plus, si vous utilisez le module complémentaire NoScript, vérifiez l'onglet Avancé \N - Confiance \N - Autoriser les liens locaux option.

1 votes

C'est la même chose que la réponse de Marko Dumic, mais la sienne est plus facile pour un utilisateur final alors que celle-ci est plus facile (peut-être même meilleure) pour une application externe.

2 votes

La réponse de Marko Dumic n'a pas fonctionné dans mon cas (Firefox 3.0.3 + Windows Server 2003 R2 SP2).

0 votes

@MarkBerry vient de le tester : il fonctionne aussi dans Firefox 19 beta :D

6voto

Nicolas C. Points 158

En lisant la solution donnée ici, j'ai suivi le lien Les liens vers les pages locales ne fonctionnent pas et pour moi, seule cette solution a bien fonctionné (j'utilise wordpress pour une FAQ personnelle sur une installation wamp locale) :

  • Allez dans votre "%Vos documents et paramètres%". \Application Données \Mozilla\Firefox\Profiles\ %votre profil%\"
  • Modifiez le fichier "prefs.js".
  • ajouter les lignes suivantes à la fin du document :

.

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

Vous pouvez laisser le paramètre "security.checkloaduri" à sa valeur par défaut, ainsi que le paramètre "security.fileuri.strict_origin_policy". Grâce à ces 3 lignes, vous faites juste une exception pour votre serveur local.

Attention, si vous devez revenir à ce fichier prefs.js, notez que Firefox l'aura classé par ordre alphabétique. Ainsi, les 3 lignes que vous aurez ajoutées à la fin se retrouveront quelque part au début ;).

3 votes

Je pense que vous manquez la définition de la localfilelinks (voir mozilla.org/projets/sécurité/composants/politique-de-configuration.html ) user_pref("capability.policy.policynames", "localfilelinks");

0 votes

Que fait le maonoscript ligne font ? Ou c'était censé être policynames comme le suggère Micha ?

2voto

Gordon Bell Points 5798

Vous pouvez charger le module complémentaire FireFox LocalLink, qui vous permet de cliquer avec le bouton droit de la souris sur un lien local et de sélectionner 'Ouvrir dans la fenêtre de premier plan'. Les autres éléments du menu "Ouvrir..." sont censés fonctionner, mais ne le font pas pour moi.

http://locallink.mozdev.org/

Vous pouvez également utiliser NoScript, comme le suggère Alex, qui permet de cliquer normalement sur les liens locaux. Merci Alex.

1voto

Geoff Points 7754

Vous pouvez au contraire lire le fichier sur le disque et l'envoyer ensuite dans la réponse de votre page.

Voir ceci enlace pour un exemple.

0 votes

Voir le lien dans ma réponse. Ils ont un bloc de code source qui montre comment faire. Google "asp response file" et vous trouverez d'autres exemples.

0 votes

Cela a marché ! !! Merci. Pour info, toutes les solutions visant à modifier les paramètres du navigateur n'ont pas fonctionné.

0 votes

Pour information - L'exemple fonctionne mais ne permet de récupérer que les fichiers sur le même serveur... la fonction OPEN_FILE échoue si les fichiers se trouvent sur un serveur externe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X