最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Getting the file type of a zip file in input file - Stack Overflow

programmeradmin4浏览0评论

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 :

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 :

Share Improve this question edited May 28, 2014 at 15:49 BastienSander asked May 28, 2014 at 14:20 BastienSanderBastienSander 1,8485 gold badges26 silver badges56 bronze badges 2
  • What do you mean by "var file contains a type attributes empty" What attributes? Where do you use file in your script? What does it output? – Bergi Commented May 28, 2014 at 14:23
  • 2 It works here: jsfiddle/rvd6T – enapupe Commented May 28, 2014 at 14:24
Add a ment  | 

1 Answer 1

Reset to default 3

Your code works.

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

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

My console log


You should be be aware that the types will vary.

sometimes it would be type: "application/x-zip-pressed" 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

发布评论

评论列表(0)

  1. 暂无评论