tags:

views:

9099

answers:

9

I have a .asp application where image files (.PDF) are stored in a directory (fed by a copier/scanner). The created filenames are stored in a database table, When a query is launched from the web page a link to the file is created. When clicked the image should be displayed. This functionality works 100% in Internet Explorer. No suck luck in Firefox (and I have some Firefox users) The created hyperlink looks like this File://Server/Scanner/XYZ.pdf

The Firefox helps suggest the reason is this:
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

None of the suggestions for a workaround seem to work (or I am not understanding the steps to create the image display) Any Suggestions?

A: 

shouldn't you really store the pages in your application directory and reference them this way. http://SITENAME/Server/scanner/XYZ.pdf.

We do something similar with files stored all in one directory and just store the file name. we then create the link using the known folder name and append the file name. this works quite well.

Finally firefox is a lot more anal about the directions of the slashes in file names as well. Make sure they are all '/' rather than '\'.

Hope this helps.

WaxEagle
The files are not in a application directory. They reside on a separate server. I have the same set-up that you are have. Can you verify that you can produce an image using Firefox. If the displayed can you describe how you circumvented the security check that disables this functionality?
Joe
can you reference the server by IP address? if you have the access to the server you could make the folder the files are stored in a website in IIS and access them by the server's IP address.
WaxEagle
+1  A: 

You can instead read the file off the disk and then send it in the Response from your page.

See this link for an example.

Geoff
Sounds interesting....do you have an example of how that is done?
Joe
see the link in my answer. They have a block of source code that shows how. Google "asp response file" and you'll find more samples.
Geoff
That worked !!! Thanks. Fyi all of the solutions that attempeted to change the browser setting did not work
Joe
FYI - The example works but will only pull files on the same server...the OPEN_FILE function fails if the files is on an external server.
Joe
+3  A: 

UPDATED

Firefox 1.5.x or newer

Search for the Firefox profile folder on your hard drive, e.g. (12345678 stands for eight random digits and letters):

  • Windows: "C:\Documents and Settings\Username\Application Data\Mozilla\Firefox\Profiles12345678.default\"
  • Linux: "/home/username/.mozilla/firefox/12345678.default/"
  • OS X: /Username/Library/Application Support/Firefox/Profiles/12345678.default/

In this folder create a text file with the name user.js. Write the following line into that text file:

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

Works on my PC (Firefox 3.0.3) with the following references:

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

Also, if you are using the NoScript add-on, check the Advanced \ Trusted \ Allow local links option.

alexandrul
This is the same as Marko Dumic's answer, but his is easier for an end-user while this one is easier (maybe not better) for an external app.
sep332
Marko Dumic's answer didn't work in my case (Firefox 3.0.3 + Windows Server 2003 R2 SP2).
alexandrul
Worked, thank you!!
o_O Tync
+8  A: 

This is the default Firefox behavior designed for security .The assumption is probably that most web sites don't know what and where are you local files (including UNC paths).

This could be turned off in 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

That should do it for you. You have more information here:

Marko Dumic
A: 

You can load the LocalLink FireFox Add-On, which allows you to right-click on a local link and select 'Open in Foreground Window'. The other 'Open...' menu items are supposed to work, but don't for me.

http://locallink.mozdev.org/

Also, you can use NoScript, like Alex suggests, which enables normal clicking of local links. Thanks Alex.

Gordon Bell
A: 

Editing the about:config still doesn't fix this for me on Firefox 3.0.6.
I've tried enabling and disabling both options but still no joy.
Installed locallink but that didn't work either (upon inspection, all locallink does is disable security.fileuri.strict_origin_policy).

A: 

beware of incompatibility with gmarks (google toolbar replacer) both local link and policy manager worked for me; local link is a little smoother, policy manager gives you more control

A: 

Tonnes of thanks I wAs searching this solution since months,

::THis thing worked::

This could be turned off in 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

::::

sunny
A: 

Marko's solution should work for links that are also on the local filesystem, but I don't think it should allow an http:// page to link to a file:// page.

The issue for people linking from http:// pages is discussed here: http://kb.mozillazine.org/Links_to_local_pages_do_not_work along with an explanation of how to circumvent it and expose yourself to risk.

Richard