jsZip上传,jsZip压缩文件并上传到服务器

前言:

   JsZip客户端压缩客户选择的文件并上传。

就不BB啦 !直接上干货。

<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>

 

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: jszip是一个用于压缩和解压缩文件的JavaScript库,可以在微信小程序中使用。下面是一个使用jszip库的微信小程序例子: 1. 首先,在微信小程序的项目中引入jszip库,可以通过npm安装后引入,或者下载库的源代码并拷贝到项目的目录中。 2. 在需要使用jszip的页面或组件中,导入jszip库的代码: ```javascript var JSZip = require('jszip') ``` 3. 创建一个新的jszip实例: ```javascript var zip = new JSZip(); ``` 4. 向zip文件中添加文件: ```javascript zip.file("hello.txt", "Hello World"); zip.file("subfolder/test.txt", "This is a test"); ``` 5. 将zip文件保存为二进制数据: ```javascript zip.generateAsync({type:"blob"}) .then(function(content) { // content 是一个Blob对象,可以保存为文件或上传到服务器 wx.saveFile({ tempFilePath: content, success: function(res) { var savedFilePath = res.savedFilePath; console.log('文件保存成功,路径为:', savedFilePath); }, fail: function() { console.log('文件保存失败'); } }) }); ``` 以上代码中,我们首先创建了一个新的jszip实例,然后向zip文件中添加了两个文件。接下来,使用generateAsync方法将zip文件生成为二进制数据,最后调用微信小程序的saveFile将文件保存到本地。 这是一个简单的使用jszip库的微信小程序例子,你可以根据实际需要进行更复杂的操作,如解压缩文件等。 ### 回答2: 在微信小程序中使用jszip可以方便地实现文件压缩和解压缩功能。下面举一个例子来说明如何使用jszip压缩和解压缩文件。 首先,我们需要在微信开发者工具中引入jszip库。可以在项目根目录下创建一个libs文件夹,并将jszip.js文件拷贝进去。 压缩文件的例子: 1. 创建一个button按钮,并绑定一个点击事件。 2. 在点击事件的回调函数中,首先获取要压缩文件路径,可以通过wx.chooseImage或wx.chooseVideo等API来选择。 3. 使用wx.getFileSystemManager().readFile()方法读取文件内容,并将内容转为ArrayBuffer。 4. 创建一个Zip实例,然后使用addFile()方法将文件内容添加到压缩包中。 5. 调用generateAsync()方法生成压缩包。 6. 将生成的压缩包保存到本地,可以使用wx.getFileSystemManager().writeFile()方法来保存。 解压文件的例子: 1. 创建一个button按钮,并绑定一个点击事件。 2. 在点击事件的回调函数中,先选择要解压的压缩文件。 3. 使用wx.getFileSystemManager().readFile()方法读取压缩文件的内容,并将内容转为ArrayBuffer。 4. 创建一个Zip实例,然后使用loadAsync()方法加载压缩包。 5. 调用file方法获取压缩包中的所有文件,然后使用asyncForEach()方法循环解压每个文件。 6. 使用await关键字来等待解压完成后再进行下一步操作。 以上就是使用微信小程序中的jszip库实现文件压缩和解压缩的一个简单例子。如果需要更多详细的代码和具体的API的使用方法,可以查阅jszip的官方文档或在小程序开发社区中寻求帮助。 ### 回答3: JSZip是一个JavaScript库,用于创建、读取和修改ZIP文件。它可以在微信小程序中使用,以实现一些ZIP文件相关的功能。 以下是一个使用JSZip库的示例代码,实现了在微信小程序中创建和读取ZIP文件的功能: ```javascript // 导入JSZip库 const JSZip = require('jszip'); // 创建一个新的ZIP实例 const zip = new JSZip(); // 添加文件到ZIP中 const fileContent = 'Hello World!'; zip.file('example.txt', fileContent); // 生成ZIP文件 zip.generateAsync({ type: 'blob' }) .then(function(content) { // 将生成的ZIP文件保存到本地 wx.saveFile({ tempFilePath: content, success: function(res) { // 保存成功后的回调函数 console.log('ZIP文件保存成功', res.savedFilePath); // 读取ZIP文件内容 wx.getFileSystemManager().readFile({ filePath: res.savedFilePath, success: function(data) { // 解析ZIP文件 JSZip.loadAsync(data) .then(function(zip) { // 读取ZIP中的文件 const file = zip.file('example.txt'); if (file !== null) { // 打印文件内容 console.log(file.name, file.asText()); } }); }, fail: function(err) { console.error('读取ZIP文件失败', err); } }); }, fail: function(err) { console.error('保存ZIP文件失败', err); } }); }); ``` 以上示例代码演示了如何使用JSZip在微信小程序中创建一个包含"example.txt"文件的ZIP文件,并且将生成的ZIP文件保存到本地,然后再读取ZIP文件中的文件内容并打印出来。 需要注意的是,微信小程序只支持保存文件到本地和读取本地文件的操作,所以在上述代码中使用了保存文件和读取文件的微信API进行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值