Reputation: 45737
I have a form upload
I need a jQuery function that will write in a hidden text input what is written in the input file.
So I have :
<input class="addFile" id="field2" name="fileLyric" type="file" />
Whatever will be written there by the uploading (obviously the file path) should be then automatically written in a hidden text input
<input id="field2hidden" name="fileLyrichidden" type="text" style="display:none"/>
Is there a way to achieve this?
Thank you!
Upvotes: 2
Views: 31896
Reputation: 20230
This will do it, but as the others already said, this will not be the full path for security reasons.
Add a change listener, so the value will be updated if the user has selected a file.
$('#field2').change( function() {
$('#field2hidden').val($(this).val());
});
Here is a jsFiddle for demonstration. Try it in different browsers and you'll see what you get as path.
Upvotes: 9
Reputation: 490203
You can not reliable get the path used to upload a file (Chrome will say the path is C:\fakepath\...
. Best you can do is get the filename.
Upvotes: 1
Reputation: 31730
$('#field2hidden').val ($('#field2').val ())
Wouldn't that do it?
EDIT: It would get the filename but the path section is deliberately obscured. You can't (or at least shouldn't) be able to get the full path in javascript as it could expose information about the user's filesystem.
Upvotes: 2
Reputation: 50019
You can't take the actual path of the file from the input box. Most browsers will put a fake path so that you can't use it. This is a security feature of the browser.
Upvotes: 2