How to display local images in Chrome using file:// protocol?

26

7

I'd like to be able to specify a local file path for an image on a web page delivered via http using Chrome - is this possible?

I remember doing this using IE but cannot remember how! Some trusted settings I think...

JSH

Posted 2010-12-21T15:07:55.893

Reputation: 261

Answers

15

you can convert the image to base-64 code, for example with "http://duri.me/" and copy the result to browser! Like:

<img width='16' height='16'  src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVQ4jWP8//8/Ay5Q4s6GU7Jn5y9GBgYGBiacuokELKTYSpQByKB68UkMMUExQ0ZkPsVeYEQPREZGRpK8gOGCdy/PwTEyH8ZGF8MbBgwMDAxC4kZ4xfAaALMFGfz//5+6gYjXBS+fXUHhaxjEMqKrQXGBglU8SgyIS+mgYHR5DAPIAYz////HavL5DQVwtmHABAyND44tZGRgwBMG2DRhAxR7AQBhgT3yD6eBRwAAAABJRU5ErkJggg=='>

Diogo Cid

Posted 2010-12-21T15:07:55.893

Reputation: 259

7This information may be of some use to somebody, but I think it doesn't really answer this question. – G-Man Says 'Reinstate Monica' – 2014-09-09T17:02:08.307

13

Since you mentioned 'Chrome', you could use Chrome extensions to do this, to enable local access to your files.

Follow these steps:

1) In the local folder where your image(s) are, create this file called 'manifest.json' and enter this:

{
  "name": "File Exposer",
  "manifest_version": 2,
  "version": "1.0",
  "web_accessible_resources": ["*.jpg","*.JPG"]
}

2) Put this is your chrome address bar: chrome://extensions/

3) Make sure 'Developer mode' is checked (Top right of page)

4) Click the 'Load Unpacked Extension' button

5) Navigate to the local folder where the image(s) and the manifest.json file is, click ok

6) The extension 'File Exposer' should now be listed in the list, and have a check mark against 'Enabled'. If the folder is on a network drive or other slow drive or has lots of files in, it could take 10-20 seconds or more to appear in the list.

7) Note the 'ID' string that has been associated with your extension. This is the EXTENSION_ID

8) Now in your HTML you can access the file with the following, changing the 'EXTERNSION_ID' to whatever ID your extension generated:

<img src='chrome-extension://EXTENSION_ID/example1.jpg'>

Note, that the *.jpg is recursive and it will automatically match files in the specified folder and all sub folders, you dont need to specify for each sub folder. Also note, its Case Sensitive.

In the 'img' tag you dont specify the original folder, its relative from that folder, so only sub folders need to be specified.

If you modify the manifest.json file, you will need to click the 'Reload (Ctrl+R)' link next to the extension.

Rob Donovan

Posted 2010-12-21T15:07:55.893

Reputation: 231

8

Non-local web pages cannot access local files in Chrome or any modern web browser.

You can override this using LocalLinks (for Firefox), but it will only work in your own machine.

user1686

Posted 2010-12-21T15:07:55.893

Reputation: 283 655

I think chrome is dumb, I was trying on a about:blank page and it was not allowing it, I tired opening a local HTML file and it worked, even for images in spite of what @WillemD'Haeseleer said. My code was this: drawing = new Image(); drawing.src = "C:/Users/S/Videos/net.png"; – Shayan – 2019-09-25T08:53:08.087

2won't work for images – Willem D'Haeseleer – 2013-04-26T19:00:13.990

3

If you want to test local image on the live site you can run local web server and set URL like http://127.0.0.1:8123/img.jpg on page using DevTools

There is different ways to run a web server: 1. Extension for browser "Web Server for Chrome" with defined folder https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb

  1. If you have python then run embedded http server at chosen folder

    python3 -m http.server 8123 # python 3 version
    python -m SimpleHTTPServer 8123 # python 2 version

  2. Use production ready server like nginx, apache

koxt

Posted 2010-12-21T15:07:55.893

Reputation: 131

2

in Chrome this looks like this

file:///C:/sample.txt

KutscheraIT

Posted 2010-12-21T15:07:55.893

Reputation: 940

prefixing the URL with "file:///" helped me. Thanks! – Aimal Khan – 2018-03-11T02:03:25.203

I get this error on the console: "not allowed to load local recources" – Shayan – 2019-09-25T08:19:25.213

I'm after doing something like this, hosted on web, but looking at a users local files.... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>example</title> </head>

<body> <img src="file:///c:/graphics/image.jpg" height="200px" width="200px" /> <h1>Welcome</h1> <p>Hello world!</p> </body> </html> – JSH – 2010-12-21T15:29:08.490

1I just tried .html and .jpg files with the file:/// notation, both were renderd correctly. Could you post a screenshot that shows the address bar and some of the content? – KutscheraIT – 2010-12-21T15:34:05.780

try http://jsh.learningict.net/ - obviously the image you won't have but the code shows you an idea of what I'm after

– JSH – 2010-12-21T17:12:44.570

I can only guess that you are referring to the image tag, which also works fine when i replace the src with

<img src="file:///c:\test.jpg" height="200px" width="200px">

c:\test.jpg is a valid jpg in that path and shows fine. – KutscheraIT – 2010-12-21T17:19:59.480

wonder if it is an osx thing then? the src ref works fine alone in Chrome's address bar, just not in the HTML code – JSH – 2010-12-22T09:50:43.407

In the HTML code use the following. <img src="c:\test.jpg">, it doesn't need the "file:///" in order to find the picture, that is the way that the browser handles the location of the picture, HTML handles it differently. – paradd0x – 2011-02-20T11:05:31.817

@Thiago, OS X does not have a C:\ ... – user1686 – 2011-10-10T16:02:13.750

0

In my case, I only needed to see what one small image change would look like in different responsive sizes. It was easiest to Save as... a complete webpage to the desktop and then open that instead. I inspect and edit the image src.

changokun

Posted 2010-12-21T15:07:55.893

Reputation: 109

That doesn't appear to be at all what OP was asking, not even related. Please read questions carefully, and do not answer or comment unless you have relevant information to add. – music2myear – 2018-03-23T18:28:52.573

1But it is what i was looking for – Samuel Thompson – 2018-09-12T18:06:08.493

-1

Okay, you can't just let somebody else acess your local file system! You would need a server-service like Apache, let your computer run 24h a day, make sure it wont overheat, care for good security and much more to make that even possible. And because server-administration is expensive and time-consuming, most people let the pro's host our stuff for us (Webhosting).

In conclusion, if you don't want to run your own server, it's much easier to just upload it to your webhoster of choice.

user759576

Posted 2010-12-21T15:07:55.893

Reputation: 1

2The question isn't about letting the internet at large access files on the local system. – xenoid – 2017-08-09T13:06:24.270