利用Plupload来进行前端文件上传


Plupload有以下功能和特点:

1、拥有多种上传方式:HTML5、flash、silverlight以及传统的<input type=”file” />。Plupload会自动侦测当前的环境,选择最合适的上传方式,并且会优先使用HTML5的方式。所以你完全不用去操心当前的浏览器支持哪些上传方式,Plupload会自动为你选择最合适的方式。

2、支持以拖拽的方式来选取要上传的文件

3、支持在前端压缩图片,即在图片文件还未上传之前就对它进行压缩

4、可以直接读取原生的文件数据,这样的好处就是例如可以在图片文件还未上传之前就能把它显示在页面上预览

5、支持把大文件切割成小片进行上传,因为有些浏览器对很大的文件比如几G的一些文件无法上传。

所以说用Plupload进行文件上传可以说是十分的方便,下面我将进行代码演示首先要引入Plupload的js文件这里就不赘述了

<script>部分:

$("#uploader").pluploadQueue({
					runtimes: 'flash,html5,html4,silverlight', // 这里是说用什么技术引擎
					url: '<%=basePath%>jfp_forensics!saveFile.action',// 服务端上传路径
					unique_names: true,// 上传的文件名是否唯一
					file_data_name:'upfile',//指定文件上传时文件域的名称,默认为file
					max_file_size : '200mb', // 文件上传最大限制。
					chunks: {
						size: '200mb',
						send_chunk_number: false
					}, // 上传分块每块的大小,这个值小于服务器最大上传限制的值即可。
					flash_swf_url: '<%=basePath%>public/script/plupload-2.1.1/Moxie.swf', // plupload.flash.swf 的所在路径
					silverlight_xap_url: '<%=basePath%>public/script/plupload-2.1.1/Moxie.xap',   // silverlight所在路径
					dragdrop: true,//拖放
					preinit: {//进行文件上传的操作
						UploadFile: function(up, file) {
							up.settings.multipart_params = {
							 	randomNum : $("#filekey").val(),
							 	ecType : ecTypeTmp,
							 	prNo : prNoTmp
							};
							len++;//上传多个文件时进行判断上传了几个文件
						}
					},
					init: {//这里的初始化方法我是对一些表单数据的保存,文件上传的操作已经在preinit执行了

						UploadComplete : function(up ,files) {
							if(up.state == plupload.STOPPED){
								if(filelen == len){
								$.ajax({
									type: "POST",
									url:'<%=basePath%>jfp_forensics!addForensics.action',
									data:$('#saveform').serialize(),
									dataType:'json',
									success:function(data){
										if(data.success){
											$('#tt').datagrid("reload");
											$('#win').window('close'); // close a window
											alert("保存信息");
										}else{
											alert("保存信息出错");
										}
									}
								});
								len = 0;
								}
								
							}else{
								alert("上传失败");
							}
						}
					}
				});


html部分:

<div id="uploader">
	<p>浏览器不支持 请使用IE8 或者 CHROME浏览器</p>
</div>


//以上就是把Plupload组件初始化,想要保存文件时代码如下 
function doSaveInfo(){
				
				var uploaderTmp = $("#uploader").pluploadQueue();
				var filesCount = uploaderTmp.files;
                               //中间可以插入自己的一些判断
			
				uploaderTmp.start();
				
			}



之后便会把添加的文件传到后台去。以上就是一个简单的利用Plupload上传文件的方法 

下面附上Plupload中文文档的链接以便以后自己查阅:http://www.phpin.net/tools/plupload/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端可以通过以下几种方法来解决上传文件太大的问题: 1. 限制文件大小:在前端代码中限制上传文件的大小,如果文件太大,就提示用户选择一个较小的文件。 2. 分块上传:将文件分成多个小块,分别上传,这样即使文件很大,也不会占用太多的内存。 3. 压缩文件:在前端压缩文件,使得文件体积变小,再上传。 4. 后端处理:如果前端无法处理,也可以在后端进行处理,例如将大文件分块存储。 选择具体的解决方案取决于具体的需求和约束条件。 ### 回答2: 前端可以通过以下几种方式解决上传文件太大的问题。 1. 文件大小限制:前端可以通过在文件上传控件中设置文件大小限制,限制用户上传的文件最大大小。可以使用HTML5的File API来检查文件的大小,在选择文件之前进行检查并给予用户相应的提示。 2. 断点续传:前端可以使用断点续传技术,将大文件分成多个小文件进行上传。当上传中断时,用户重新上传时只需要上传断点之后的文件部分,避免重复上传整个大文件。可以使用HTML5的File API对文件进行切割,或者使用第三方库进行切割和上传。 3. 压缩文件:前端可以在上传之前对大文件进行压缩,减小文件的大小。可以使用第三方的文件压缩库进行文件压缩,然后再进行上传。 4. 服务器分片上传:将大文件分成多个小分片,分别上传到服务器。前端可以使用HTML5的File API对文件进行切割,将切割后的小分片并发地上传到服务器。服务器端接收到多个小分片后再进行合并。 5. 服务器端限制:前端可以向服务器发送文件大小等信息,并在服务器端进行判断和限制。服务器端可以设置接收文件的最大大小,当前端上传的文件超过服务器的限制时,服务器拒绝接收并返回相应提示给前端。 总而言之,前端可以通过文件大小限制、断点续传、文件压缩、服务器分片上传和服务器端限制等方式来解决上传文件太大的问题。不同的解决方案可以根据实际情况进行选择和组合使用。 ### 回答3: 当遇到上传文件太大的问题,前端可以采取以下方法来解决: 1. 设置前端限制:可以在前端进行文件大小的限制。通过在文件上传的表单元素中添加"accept"属性,并指定文件类型,例如"accept=".png,.jpg",可以限制只接受指定类型的文件。另外,在表单元素中添加"maxlength"属性,可以限制上传文件大小,避免上传过大文件。 2. 对文件进行压缩:前端可以使用压缩算法,将文件进行压缩再上传。通过压缩文件,可以减小文件大小,提高上传速度。可以使用一些前端框架或者第三方库,如JSZip、image-compressor等来实现文件压缩功能。 3. 分片上传:将大文件分成小块进行上传。前端可以使用分片上传的方式,将文件分成多个小块,逐个进行上传。这样可以避免一次性上传大文件,减轻服务器负担,提高上传速度。一些前端框架或者第三方库,如Resumable.js、plupload等可以辅助实现分片上传功能。 4. 服务端限制:与前端限制结合使用,后端也可以对上传文件大小进行限制。在服务器端设置上传文件的大小限制,当文件超过限制大小时,可以返回错误信息,提醒用户重新选择文件或者压缩文件后再上传。 综上所述,前端可以通过设置前端限制、对文件进行压缩、分片上传以及结合后端限制来解决上传文件太大的问题。通过这些方法,可以有效地减小上传文件的大小,提高文件上传的效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值