jQuery中input[type=file] 将符合格式为.tar.gz的文件进行上传

首先我没有使用form里边去处理,而是单独事件去处理对应的。

<div class="form-group">
    <input type="file" id="exampleInputFile" name="archive" style="display: inline-block; width: 220px;">
	<button type="button" style="display: inline-block;" name="restore" value="恢复" onclick="submitFile()">上传</button>
	<button type="button" style="display: inline-block;" name="backup" value="生成备份" onclick="backupFile()">备份</button>
</div>

其次,上传的文件

            //导入
			function submitFile(){
				let file = $("input[name=archive]").get(0).files[0],//判断file是否有文件
					formdata = new FormData();
				formdata.append("archive", $("input[name=archive]").get(0).files[0])
			     if(file && (file.type == "application/x-gzip" || file.type == "application/x-zip-compressed" || file.name.indexOf(".rar") != -1)){
					 //选择的文件存在且格式正确允许导入
					 let params = {
						 restore: 1,
						 archive: formdata
					 };
					 $.ajax({
					 	type: "post",
					 	url: "",
					 	data: params,
					 	success: function(res,data1,data2) {
								// console.log(res);
								// console.log(data1);
								// console.log(data2);
								$("html").html(res);//这个看你是上传之后进行什么操作吧
					 	},
					 	error: function(XMLHttpRequest, textStatus, errorThrown) {
					 		console.log("ERR:" + XMLHttpRequest.responseText);
					 	},
					 	complete: function(XHR, TS) {}
					 });
			     }else{
			     	toast("导入前请选择正确格式的文件!",1000);
					return false
			     }
			}

可能很多人不是需要这种文件上传的格式,因为需要,不得不选择这种格式的,linux把文件压缩成.tar.gz的命令。这个我也不懂linux,反正相关就一起学习一下。以下来源:点击跳入

    1、连接上相应的bailinux主机,进入到等du待输入shell指令的zhilinux命令行dao内状态下。

    2、在linux命令行下输入shell指令:tar -czf test.tar.gz test.txt。

    3、最容后,按下回车键执行shell指令,此时会看到test.txt被成功压缩为test.tar.gz。

(1)tar.gz格式的解压与压缩:
解压:[*******]$ tar zxvf FileName.tar.gz
压缩:[*******]$ tar zcvf FileName.tar.gz DirName

(2)在linux下可以使用daotar命令对文件制进行打包操作,bai打包完成之后是以du.tar结尾的,如果同时需要zhi对文件dao或者文件夹进行压缩处理,生成.tar.gz结尾的压缩文件,有以下两种方式:

1、使用tar和gzip命令

先使用tar命令对文件进行打包:

tar -cf all.tar *.jpg

然后使用gzip进行压缩:

gzip –c filename > filename.gz

2、只使用tar命令

tar -czf all.tar.gz *.jpg 

这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个
gzip压缩过的包,包名为all.tar.gz 。

那么针对于前端中我们可以限制的input[type=file]的上传文件的类型有哪些呢?

目前html5中用accept属性对input[type='file']设定,多个类型用逗号分隔开,下面有详细的type:

*.3gpp audio/3gpp, video/3gpp 3GPP Audio/Video
*.ac3 audio/ac3 AC3 Audio
*.asf allpication/vnd.ms-asf Advanced Streaming Format
*.au audio/basic AU Audio
*.css text/css Cascading Style Sheets
*.csv text/csv Comma Separated Values
*.doc application/msword MS Word Document
*.dot application/msword MS Word Template
*.dtd application/xml-dtd Document Type Definition
*.dwg image/vnd.dwg AutoCAD Drawing Database
*.dxf image/vnd.dxf AutoCAD Drawing Interchange Format
*.gif image/gif Graphic Interchange Format
*.htm text/html HyperText Markup Language
*.html text/html HyperText Markup Language
*.jp2 image/jp2 JPEG-2000
*.jpe image/jpeg JPEG
*.jpeg image/jpeg JPEG
*.jpg image/jpeg JPEG
*.js text/javascript, application/javascript JavaScript
*.json application/json JavaScript Object Notation
*.mp2 audio/mpeg, video/mpeg MPEG Audio/Video Stream, Layer II
*.mp3 audio/mpeg MPEG Audio Stream, Layer III
*.mp4 audio/mp4, video/mp4 MPEG-4 Audio/Video
*.mpeg video/mpeg MPEG Video Stream, Layer II
*.mpg video/mpeg MPEG Video Stream, Layer II
*.mpp application/vnd.ms-project MS Project Project
*.ogg application/ogg, audio/ogg Ogg Vorbis
*.pdf application/pdf Portable Document Format
*.png image/png Portable Network Graphics
*.pot application/vnd.ms-powerpoint MS PowerPoint Template
*.pps application/vnd.ms-powerpoint MS PowerPoint Slideshow
*.ppt application/vnd.ms-powerpoint MS PowerPoint Presentation
*.rtf application/rtf, text/rtf Rich Text Format
*.svf image/vnd.svf Simple Vector Format
*.tif image/tiff Tagged Image Format File
*.tiff image/tiff Tagged Image Format File
*.txt text/plain Plain Text
*.wdb application/vnd.ms-works MS Works Database
*.wps application/vnd.ms-works Works Text Document
*.xhtml application/xhtml+xml Extensible HyperText Markup Language
*.xlc application/vnd.ms-excel MS Excel Chart
*.xlm application/vnd.ms-excel MS Excel Macro
*.xls application/vnd.ms-excel MS Excel Spreadsheet
*.xlt application/vnd.ms-excel MS Excel Template
*.xlw application/vnd.ms-excel MS Excel Workspace
*.xml text/xml, application/xml Extensible Markup Language
*.zip aplication/zip Compressed Archive

猜你喜欢

转载自blog.csdn.net/XU441520/article/details/108599660