Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery input.files equivalent

Tags:

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.

like image 900
Mansfield Avatar asked Dec 06 '12 16:12

Mansfield


People also ask

How do I get the value of an input type file?

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.


2 Answers

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

like image 186
Stefan Avatar answered Nov 13 '22 10:11

Stefan


Try the below code

var file = $("#fileInput").get(0).files[0];  alert(file); 

Thanks

like image 22
Sridhar Narasimhan Avatar answered Nov 13 '22 08:11

Sridhar Narasimhan