I need to show the name of the currently selected file (in <input type="file">
element).
Everything is fine, the only problem is I'm getting this kind of string "C:\fakepath \typog_rules.pdf" (browset automatically puts this as value for the input element).
When I try to split the string by '\'
or '\\'
it fails because of unescaped slashes. Attempts to match/replace slashes fails too. Is there a way around this? I need this to work at least in Opera and IE (because in other browsers I can use FileReader)
E.G. I'm getting "C:\fakepath\typog_rules.pdf" as input and want to get "typog_rules.pdf" as output.
Slightly hacky, but it works:
Add an input id to the element and do something like that:
I think this is closer to the answer you're looking for:
Escape the backslash character.
For security reasons, it is not possible to get the real, full path of a file, referred through an
<input type="file" />
element.This question already mentions, and links to other Stack Overflow questions regarding this topic.
Previous answer, kept as a reference for future visitors who reach this page through the title, tags and question.
The backslash has to be escaped.
In JavaScript, the backslash is used to escape special characters, such as newlines (
\n
). If you want to use a literal backslash, a double backslash has to be used.So, if you want to match two backslashes, four backslashes has to be used. For example,
alert("\\\\")
will show a dialog containing two backslashes.