Reputation: 67217
Whenever the uploading process happens through the Browsers rather than IE, the path
belongs to the file from client side systems is showing like "c:/fakepath/x.jpg"..! I tried out lot of
Solutions from the web to rectify that, but nothing works..! If anybody successfully tackled this
problem before Just send me your solution..!
HTML code that i used
<form name="xx" enctype="multipart/form-data">
<input type="file" name="up"/>
</form>
My Java script..
alert(document.xx.up.value);
But it is displaying "c:/fakepath/x.jpg" in all browsers except IE.
Upvotes: 2
Views: 6029
Reputation: 1
Adding some few more steps to your code and introducing a change event, you could retrieve the file object from the event target if there is a file selected at all.
<form name="xx" enctype="multipart/form-data">
<input type="file" onchange="fileChangeAction(event)" name="up"/>
</form>
<script>
const fileChangeAction = ($event) => {
let file;
if($event.target) {
if($event.target.files) {
file = $event.target.files[0];
}
}
console.log(file);
}
</script>
Upvotes: 0
Reputation: 11
Change the ClientId of the AsyncFileUpload control from Inherit to AutoId
Upvotes: 0
Reputation: 18484
This post shows a way to remove the 'fakepath' display:
// Change the node's value by removing the fake path
inputNode.value = fileInput.value.replace("C:\fakepath\", "");
Upvotes: 0
Reputation:
Modern browsers won't tell you what the actual path of the file is, because it's really none of your business as an application programmer, and is likely to contain private user information (e.g, their username).
There is no workaround. Learn to live without that information.
Upvotes: 1
Reputation: 4339
This is a browser security restriction. You can't set the value of the file upload control via script, nor can you read the correct path.
Upvotes: 1