plupload 实例

引入js

<script type="text/javascript" src="/js/Uploadify/plupload.min.js"></script>

官网下载地址:http://www.plupload.com/download/

前台HTML代码

<div id="container">
         <a id="pickfiles" href="javascript:;">上传附件</a>
</div>

实例化plupload控件

  1 var fileNameList = [];//附件总列表
  2 var uploadSuccessList = [];//已上传附件列表
  3 var fileSizes = 0; //已在列表中附件总大小。
  4 var uploader = new plupload.Uploader({
  5         //runtimes: ‘gears,silverlight,html5‘,
  6         //runtimes : ‘html5,flash,silverlight,html4‘,//选择方式执行
  7         browse_button: ‘pickfiles‘, // 触发文件选择对话框的按钮,为那个元素id
  8         container: document.getElementById(‘container‘), // ... or DOM Element itself
  9         url: ‘/_Layouts/15/ApproveListHandler.aspx?Type=UpLoadAttachment‘, //服务器端的上传页面地址
 10         flash_swf_url: ‘/js/Uploadify/Moxie.swf‘, //swf文件,当需要使用swf方式进行上传时需要配置该参数
 11         max_file_size: ‘100mb‘,//限制为100MB
 12         filters: {
 13             //max_file_size: ‘100mb‘, //最大只能上传10mb的文件
 14             prevent_duplicates: true //不允许选取重复文件
 15         },//文件
 16         silverlight_xap_url: ‘/js/Uploadify/Moxie.xap‘, //silverlight文件,当需要使用silverlight方式进行上传时需要配置该参数
 17         init: {
 18             PostInit: function () {
 19                 控件初始化完成后执行。
 20             },
 21             FilesAdded: function (up, files) {
 22                 var isAdd = true;//判断是否有0字节附件。
 23                 var sizes = 0;//上传附件总大小。
 24                 var fileName="";
 25                 var currentSize=0;//每次上传的附件总大小。
 26                 var tempLength = files.length;
 27
 28                 for (var m = 0; m <= tempLength - 1; m++) {
 29                     var fileSize = files[m].size;
 30                         //判断附件是否为空
 31                     if(fileSize==0)
 32                     {
 33                         isAdd = false;
 34                         fileName=files[m].name;
 35                         break;
 36                     }
 37                     currentSize+=fileSize;    //计算本次上传附件总大小。
 38                 }
 39
 40                 //判断是否为0字节附件。为空附件不进行上传
 41                 if (!isAdd) {
 42             bulletFrame("附件  "+fileName+"  大小不能为空!");
 43                         for (var m = tempLength - 1; m >= 0; m--) {
 44                         uploader.removeFile(files[m].id);
 45                         files.splice(m, 1);
 46                     }
 47                 }
 48
 49         sizes += fileSizes + currentSize;     //上次附件大小+本次上传附件大小
 50
 51                 //总大小不超过200M
 52                 if (sizes > (200*1024*1024)) {
 53                     bulletFrame("附件总大小不能超过200M!");
 54                     //isAdd = false;
 55                     for (var m = tempLength - 1; m >= 0; m--) {
 56                         uploader.removeFile(files[m].id);
 57                         files.splice(m, 1);
 58                     }
 59                 }
 60
 61                 附件大小不超过10个
 62                 var count = files.length + fileNameList.length;
 63                 if (count > 10) {
 64                     bulletFrame("附件数量不能超过10个!");
 65                     var addFile = files.length - (count - 10) - 1,
 66                     tempLength = files.length;
 67                     for (var m = tempLength - 1; m > addFile; m--) {
 68                         uploader.removeFile(files[m].id);
 69                         files.splice(m, 1);
 70                     }
 71                 }
 72
 73                 plupload.each(files, function (file) {
 74                     var fSize = file.size;
 75                     fileSizes += fSize;
 76                     fileNameList.push(file.name);
 77                     $("#attTable").append("<tr class=‘attContent‘><td class=‘att_title‘ title=‘" + file.name + "‘>" + subString(file.name, 40) + "(" + plupload.formatSize(file.size) + ")" + "</td><td id=‘" + file.id + "‘ class=‘delTd‘><img src=‘/images/selected/list_delete.png‘></td></tr>");
 78                //删除队列中附件
 79                $("#" + file.id).click(function (q) {
 80                         $(this).parent().remove();
 81
 82                         for(var i=0;i<=fileNameList.length-1;i++){
 83                             if(fileNameList[i]==file.name){
 84                             fileNameList.splice(i,1);//删除已在列表中的附件
 85                             }
 86                         }
 87
 88                         var fSize = file.size;
 89
 90                             fileSizes -= fSize;//减少附件大小
 91
 92                         up.removeFile(file);
 93                         if ($("#attTable tr").length <= 3) {
 94                             $(".attDivContent").removeClass("attAddShow");
 95
 96                             $(".att_title").removeClass("att_add_title");
 97                         }
 98                     });
 99
100                 });
101
102                 if ($("#attTable tr").length > 3) {
103                     $(".attDivContent").addClass("attAddShow");
104
105                     $(".att_title").addClass("att_add_title");
106                 }
107             },
108
109             FileUploaded: function (up, file, res) {
110                //上传成功后添加在列表
111                 uploadSuccessList.push(file.name);
112             },
113
114             UploadComplete: function (up, file) {
115                 //附件是否全部上传
116                 if (uploadSuccessList.length != uploader.files.length) {
117                     bulletFrame("附件未全部上传,请删除上传失败的附件!");
118                     AttModal.close();
119                     return;
120                 }
121
122                 var user = getUserInfo();
123                 var ccuser = getCCUserInfo();
124                 var txtContent = $("#txtContent").val().replace(/\n|\r\n/g, "<br />");
125                 $.ajax({
126                     type: "POST",
127                     dataType: "text",
128                     url: ‘/_Layouts/15/ApproveListHandler.aspx‘,      //提交到一般处理程序请求数据
129                     data: "Type=AddApprove&itemTitle=" + $("#txtTitle").val() + "&itemContent=" + encodeURI(txtContent) + "&itemuser=" + user + "&itemccuser=" + ccuser + "&itemAtt=" + uploadSuccessList.join("*") + "&listName=" + listName + "&itemId=" + 0,          //提交参数
130                     success: function (result) {
131                         if (result > 0) {
132                             //操作成功初始化参数
133                             AttModal.close();
134                             fileNameList = [];
135                             uploadSuccessList = [];
136                             fileSizes = 0;
137                             uploader.splice(0, uploader.files.length);
138
139                             alert("操作成功!");
140
141                         }
142                         else {
143                             AttModal.close();
144                             alert("操作失败!");
145                         }
146                     }
147                 });
148
149             },
150
151             Error: function (up, err) {
152                 if (err.code == ‘-600‘) {
153                     bulletFrame("文件:" + err.file.name + "   大小不能超过100mb!");
154                 } else if (err.code == ‘-601‘) {
155                     bulletFrame("文件:" + err.file.name + "   上传的格式有误!");
156                 } else if (err.code == ‘-602‘) {
157                     bulletFrame("文件:" + err.file.name + "   文件名重复!");
158                 }
159                 else {
160                     bulletFrame("文件:" + err.file.name + "   " + err.message);
161                 }
162
163
164             }
165         }
166     });
167                 

//在实例对象上调用init()方法进行初始化
    uploader.init();

//执行方法:

uploader.start();

时间: 2024-07-30 03:23:55

plupload 实例的相关文章

Plupload插件

Browse_button:触发浏览文件按钮标签的唯一id,,在flash.html5.和silverlight中能找到触发事件的源(我理解的,这个参数在队列部件不需要参见) Container: 展现上传文件列表的容器,[默认是body] chunk_size:当上传文件大于服务器接收端文件大小限制的时候,可以分多次请求发给服务器,如果不需要从设置中移出 drop_element:当浏览器支持拖拽的情况下,能够文件拖放到你想要的容器ID里 file_data_name:设置上传字段的名称.默认

web 文件上传组件 Plupload

Plupload官网:点击打开链接   建议下载最新版本,低版本会出现浏览器兼容问题. 最近公司有个项目需要在web端使用多文件上传功能,刚开始准备使用HTML5来做,但是IE9以下是都不支持的,于是想到了flash,在网上搜了下各种开源的组件,最后决定使用Plupload,下面来介绍一下该组件使用时遇到的一些问题以及解决方案. 先贴出配置参数: <script type="text/javascript"> // Initialize the widget when th

Plupload使用API

Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前的环境,选择最合适的上传方式,并且会优先使用HTML5的方式.所以你完全不用去操心当前的浏览器支持哪些上传方式,Plupload会自动为你选择最合适的方式. 2.支持以拖拽的方式来选取要上传的文件 3.支持在前端压缩图片,即在图片文件还未上传之前就对它进行压缩 4.可以直接读取原生的文件数据,这样的好处就是例

Plupload插件使用整理

Plupload 参考: http://www.cnblogs.com/2050/p/3913184.html http://www.plupload.com/docs/ js: //上传,配置基本参数,事件,实例化 function initPlupload() { //配置上传 vm.uploader = new plupload.Uploader({ runtimes: 'html5,flash', browse_button: 'uploadify', container: docume

plupload+struts2实现文件上传下载

plupload是一款优秀的web前端上传框架.使用简单.功能强大.不仅支持文件多上传,进度条.拖拽方式选择文件更重要的是他会自己主动的识别浏览器来选择最合适的上传方式.废话少说先上图: 代码都是測试过的非常好用,仅仅要把jquery路径和版本号改动下面,去plupload官网把jar把下载下来就能够用了. 先看一下uploadUI.jsp源码.uploadUI.jsp就是上图显示的页面: <%@ page language="java" import="java.ut

[Pulgin] 前端上传组件Plupload使用指南

我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SWFUpload显然就有点过时了,毕竟html5原生的就给我们提供了文件上传的API.Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代替以前的SWFUpload. Plupload有以下功能和特点: 1.拥有多种上传方式:HTM

Plupload 上传插件 使用指南 jquery

Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代替以前的SWFUpload. Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前的环境,选择最合适的上传方式,并且会优先使用HTML5的方式.所以你完全不用去操心当前的浏览器支持哪些 上传方式,Plupload会自动为你选择最合

前端上传组件Plupload使用指南

我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SWFUpload显然就有点过时了,毕竟html5原生的就给我们提供了文件上传的API.Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代替以前的SWFUpload. Plupload有以下功能和特点: 1.拥有多种上传方式:HTM

【转】前端上传组件Plupload使用指南

http://www.cnblogs.com/2050/p/3913184.html Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前的环境,选择最合适的上传方式,并且会优先使用HTML5的方式.所以你完全不用去操心当前的浏览器支持哪些上传方式,Plupload会自动为你选择最合适的方式. 2.支持以拖拽的方式来选取要上传的文件 3.支持在前端压缩图片,即