I have a simple html form with a single file upload input. (jsfiddle)
In the past, I have accessed the file selected by the user using input.files
, however I am at a loss as to how to do this with JQuery;
Code:
$(function () { $("#cmdSubmit").bind("click", function () { var file = document.getElementById("fileInput").files[0]; alert(file); //A file = $("#fileInput").val(); alert(file); //B file = $("#fileInput").files[0]; alert(file); //C }); });
Option A give me what I expect, a file object. However, option B simply gives me the name of the uploaded file, and (as far as I can tell) not the file itself.
Option C shows that files
is undefined.
What is the Jquery equivalent of input.files
?
Note: I have no objection to using native javascript; but given that I am using JQuery throughout the rest of this project I'd prefer to use it here as well if possible.
The value property returns the path or the name of the file selected with the <input type="file"> element. This property returns the name of the selected file with a fake path in IE, Google Chrome, and Opera, and the name of the selected file in Firefox and Safari.
You have to access the element. Try:
file = $("#fileInput")[0].files[0]; alert(file); //C
or (thank you Jack)
file = $("#fileInput").prop('files')[0]; alert(file);
Fiddle
Try the below code
var file = $("#fileInput").get(0).files[0]; alert(file);
Thanks
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With