bopjesvla
bopjesvla

Reputation: 763

Get full path from input[type=file] javascript

I know this has been asked plenty of times, but this is a special case. I'm working on an online HTML editor, using the design function of HTML 5 browsers (yeah, I found a useful application for this feature). I want to let the developer load a page, but developers are lazy (so am I), so I don't want them to enter the full path to their page. To prevent this, I use a file input (id="temp") WHICH DOESN'T GO TO THE SERVER!!!

I tried to open the local HTML file in a new browser in several ways, but the relative links in the page don't work:

window.open(temp.files.item(0)?temp.files.item(0).getAsDataURL():'',title.value,'width='+screen.width+',height='+screen.height)

The URL is encoded. This way the links in the file don't work, like in a ZIP file.

last = window.open('',title.value,'width='+screen.width+',height='+screen.height)
if(temp.files.item(0))
last.document.body.innerHTML = temp.files.item(0).getAsText("utf-8")

This code opens a blank page and copies the HTML code to the blank page. Of course the links in this page don't work either. temp.value only shows the filename, not the path.

Upvotes: 1

Views: 6700

Answers (1)

Pointy
Pointy

Reputation: 413702

Browsers simply will not tell you the information you want. The "value" property of "file" input elements does not contain the path.

If "the page" is really just an HTML page, then you might want to look into the HTML5 file reader stuff and see if you could at least read the file contents and dump them into a new browser window/tab. There might still be problems with HTML documents that expect to be able to locate auxiliary files (CSS, images, etc) via relative paths.

Upvotes: 2

Related Questions