BastienSander BastienSander - 5 months ago 14
jQuery Question

Getting the file type of a zip file in input file

I am trying to catch a file on a

input[type=file]
change event :

Here is my HTML :

<input type="file" id="file-upload" name="file-upload">


Here is my JavaScript (using jQuery) :

$('#file-upload').bind("change", function(e){
var file = (e.srcElement || e.target).files[0];
console.log(e);
}


It works fully fine with images, txt, doc, docx, xlsx etc etc etc BUT NOT with zip files.
When I try it with a zip file, the var file contains a type attributes empty.

Do you have an idea why and how i could get it?

EDIT 1
I use Chrome Browser, in Windows 7. My files are zipped with 7zip.

EDIT 2
here is what I get :

Console log

Answer

Your code works.

I tried enapupe's fiddle and it works http://jsfiddle.net/rvd6T/

$('#file-upload').bind("change", function(e){
var file = (e.srcElement || e.target).files[0];
console.log(file);
console.log(e);
});

My console log enter image description here


You should be be aware that the types will vary.

sometimes it would be type: "application/x-zip-compressed" or "application/zip"

You most likely should just base it on the filename instead, *.zip (ends with zip & case insensitive)

but still must check it on server side if its actually a ZIP file and unzipable

Comments