首先感谢,http://www.cnblogs.com/2050/p/3913184.html 这篇文章作者。

在使用PLUpload之前个人先封装了一些常用配置,并且将success与error做为配置项绑定到原有事件中,另:由于工作原因,文件都是选中后就直接上传,也同步绑定了FilesAdded 方法,不需要的可以去除.

代码如下:

$.fn.plSingleUpload = function (options) {
var settings = {
flash_swf_url: '/scripts/Moxie.swf',
silverlight_xap_url: '/scripts/Moxie.xap',
multi_selection: false
};
jQuery.extend(settings, options);
var uploaders = new plupload.Uploader(settings);
if (settings.success) {
uploaders.bind('FileUploaded', function (uploader, file, result) {
var r = result.response;
var args = [r, uploader, file, result];
try {
var data = $.parseJSON(r);
if (data != null) {
args[0] = data;
}
}
catch (e) { }
settings.success.apply(uploader, args);
});
}
if (settings.error) {
uploaders.bind('Error', function (uploader, error) {
settings.error(error.message);
});
}
else {
uploaders.bind('Error', function (uploader, error) {
alert("erro :" + error.message);
});
}
uploaders.bind('FilesAdded', function (uploader, files) {
uploader.start();
});
this.each(function () {
uploaders.setOption('browse_button', this.id);
uploaders.init();
uploaders.refresh();
});
return uploaders;
};

PLUpload只能有一个实例。如果有多个不同的类型的文件需要上传时需要执行二个步骤,这里拿项目举例。

步骤1:项目中有各种费用需要在一个页面中上传,这里在上传按钮中指定上传类型(data-action=1,2,3,4分别对应4种类型),再使用一个隐藏的按钮用来实例化PlUpload

            <div class="col-md-8">
<div class="btn-group form-inline">
<button type="button" data-action="4" class="btn btn-default"><i class="glyphicon glyphicon-upload"></i> 承兑到款导入</button>
<button type="button" data-action="3" class="btn btn-default"><i class="glyphicon glyphicon-upload"></i> 垫付运费等导入</button>
<button type="button" data-action="2" class="btn btn-default"><i class="glyphicon glyphicon-upload"></i> 广告费导入</button>
<button type="button" data-action="1" class="btn btn-default"><i class="glyphicon glyphicon-upload"></i> 交行等非工行到款导入</button>
<button type="button" id="upload1" class="btn btn-default hidden"><i class="glyphicon glyphicon-upload"></i> 导入</button>
</div>
</div>

步骤2:点击不同的按钮时,传递参数,并且点击隐藏按钮,代码如下

<script language="javascript" type="text/javascript" charset="gb2312">
$(document.body).ready(function () {
var uploader = $("#upload1").plSingleUpload({
url: '@Url.Action("ImportExls")',
success: function (data) {
if (data.Success) {
}
else {
}
$.alert(data.Message);
}
});
$("button[data-action]").click(function () {
var action = $(this).attr("data-action");
uploader.setOption("multipart_params", { 'action': action });
$("#upload1").click();
}); });
</script>

  

一次多文件上传的注意事项 : plupload上传文件是一个提交成功之后再提交另一个,直至所有文件上传完成,与我们想像中的一次提交不同。意味着在处理上传文件的时候,参数只能使用HttpPostedFileWrapper 而不能用HttpPostedFileWrapper[] ,默认情况下 upload1 将做为上传文件提交时的name进行提交

使用PLupload在同一页面中进行多个不同类型上传解决方案和一次多文件上传的注意事项的更多相关文章

  1. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...

  2. ASP.NET CORE RAZOR :将文件上传至 ASP.NET Core 中的 Razor 页面

    本部分演示使用 Razor 页面上传文件. 本教程中的 Razor 页面 Movie 示例应用使用简单的模型绑定上传文件,非常适合上传小型文件. 有关流式传输大文件的信息,请参阅通过流式传输上传大文件 ...

  3. 文件上传plupload组件使用

    这段时间一直在使用文件上传,简要的介绍一下文件上传的组件使用,先上一段代码. var uploader = new plupload.Uploader( { //用来指定上传方式,指定多个上传方式请使 ...

  4. PHP中,文件上传实例

    PHP中,文件上传一般是通过move_uploaded_file()来实现的.  bool move_uploaded_file ( string filename, string destinati ...

  5. spring mvc中的文件上传

    使用commons-fileupload上传文件所需要的架包有:commons-fileupload 和common-io两个架包支持,可以到Apache官网下砸. 在配置文件spring-mvc.x ...

  6. javaWeb中的文件上传下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  7. javaWeb中,文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  8. 关于ueditor在Java中文件上传问题,404问题

    问题困扰了两天,部署要求导入到webcontent下,我导入到了整个项目目录下,自己粗心犯错,导致页面访问不到404. 解决了上面的问题,试着进行文件上传,却一直找不到图片: 调出浏览器控制台: 刚开 ...

  9. 【SpringMVC学习08】SpringMVC中实现文件上传

    之前有写过一篇struts2实现的文件上传,这一篇博文主要来总结下springmvc实现文件上传的步骤.首先来看一下单个文件的上传,然后再来总结下多个文件上传. 1. 环境准备 springmvc上传 ...

随机推荐

  1. CentOS 7.4 安装 网易云音乐

    CentOS 7.4 安装 网易云音乐 本文包含: 安装dnf 编译gcc 5.4.0 安装各种包 安装网易云音乐贯穿全局; 安装环境: CentOS 7.4, kernel3.10.0, gcc4. ...

  2. SCO Openserver、SCO Unix、SCO UnixWare、Solaris几者到底是什么关系,有什么相同或不同?

    Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT&T贝尔实验室实现的,运行在一台DEC PDP-7计算机上.这个系统非常粗糙,与现代Unix相差很远 ...

  3. 【Loadrunner】Vugen录制脚本为空的解决办法

    1. ie -> 工具 -> Internet选项 - 高级 - 勾除“启动第三方浏览器扩展选项”,然后重启电脑 2. 还有一种可能,就是机器上安装了多个浏览器,从而导致出现问题,解决方法 ...

  4. php后端控制可跨域的域名,允许图片跨域上传

    跨域问题经常需要面对,前端需要做的比较直接要么选择ajax异步提交,XML或者jsonp,要么表单提交前端常见跨域解决方案 jsonp基本可以搞定大部分跨域问题,但问题也比较明显,只能通过get方式提 ...

  5. 紫书 习题 10-14 UVa 10886(暴力+数据范围)

    开始的时候一看这题感觉很难,觉得肯定有什么很快的办法 不能暴力做(受了上一题10-13的影响) 然后一看那个函数感觉无从下手. 然后看了博客发现,原来这道题就是直接暴力-- 因为n的范围为10的7次方 ...

  6. 【Codeforces Round #422 (Div. 2) D】My pretty girl Noora

    [题目链接]:http://codeforces.com/contest/822/problem/D [题意] 有n个人参加选美比赛; 要求把这n个人分成若干个相同大小的组; 每个组内的人数是相同的; ...

  7. HDU 4309 Seikimatsu Occult Tonneru

    Seikimatsu Occult Tonneru Time Limit: 6000ms Memory Limit: 32768KB This problem will be judged on HD ...

  8. HTML学习----------DAY2第五节

    属性为 HTML 元素提供附加信息. HTML 属性 HTML 标签可以拥有属性.属性提供了有关 HTML 元素的更多的信息. 属性总是以名称/值对的形式出现,比如:name="value& ...

  9. 遇到 Form 性能问题怎么办 performance issue

    性能问题是比較复杂的问题. 一般由performance team 负责, 可是常见的情况是, 我们 INV team 定义的 view 不好, 导致查询性能较差. 这个必须由产品组和 perform ...

  10. Effective C++ 条款13

    以对象管理资源 资源的种类非常多,动态分配的内存.文件描写叙述器.相互排斥锁.图像界面中画刷.数据库连接.网络socket等. 资源通常是有限的.当你不用时,必须释放.不然就会造成资源浪费.更严重的情 ...