前言:html
JsZip客户端压缩客户选择的文件并上传。jquery
就不BB啦 !直接上干货。ajax
<html> <head> <title>客户端压缩文件测试</title> <script src="./jquery.min.js" ></script> <script src="./jszip.js" ></script> </head> <body> <span>选择文件:</span><input type="file" id="files1" /> <hr> <button onclick="toZip()" >压缩选择的文件并上传</button> <script > function toZip(){ //file.files 是一个fileList对象 fileList里面是file对象 var file = document.getElementById("files1"); //文件读取成功 将文件打包成zip var zip = new JSZip(); //添加须要压缩的文件 file对象 zip.file(file.files[0].name, file.files[0]); //zip.file("mimetype", "application/zip"); //return promise对象 该方法是异步方法 须要注意!上传和修改文件内容须要在此方法中,我就是由于这个坑浪费三四个小时 zip.generateAsync({type:"Blob",compression: "DEFLATE"}).then(function(content) { //第一种方法 //建立file对象 var fils = new File([content],'test.zip',{type: "zip"}); //建立提交表单 并将file对象放入form表单中 var formData = new FormData(); formData.append("file",fils); //第二种方法 未测试 这个我也是看别人的:https://www.jianshu.com/p/cda557daad1f var fromData2 = new FormData(); formData.append("blob",content); //ajax上传formData $.ajax({ url:'upload', type:'POST', data:formData, processData:false, contentType:false, success:function (data) { } }); }); } </script> <body> <html>