首先感谢,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. [笔记-图论]Bellman-Ford

    用于求可带负权的单源有向图 优化后复杂度O(nm) 如果图中存在负环,就不存在最小路 这种情况下,就一定会有一个顶点被松弛多于n-1次,Bellman-Ford可直接判断出来 我在网上看到SPFA,发 ...

  2. [POI2010]GIL-Guilds(结论题)

    题意 给一张无向图,要求你用黑白灰给点染色,且满足对于任意一个黑点,至少有一个白点和他相邻:对于任意一个白点,至少有一个黑点与他相邻,对于任意一个灰点,至少同时有一个黑点和白点和灰点与他相邻,问能否成 ...

  3. HNU 12886 Cracking the Safe 二十四点的判断

    经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> ...

  4. Unity 给FindGameObjectsWithTag排序

    GameObject[] patrol = GameObject.FindGameObjectsWithTag ("Player").OrderBy (g => g.tran ...

  5. django-xadmin定制之列表页searchbar placeholder

    环境:xadmin-for-python3 python3.5.2 django1.9.12 列表页的searchbar如果提供的可搜索字段,都没提示哪个字段可搜索,很不友好,本次定制主要增加inpu ...

  6. LiquiBase预判断

    预判断解决的问题:运行liquibase之前,DB中已经存在一个table,所以需要加上预判断: 完整的一个例子: <?xml version="1.0" encoding= ...

  7. linux添加开机启动项的方法介绍

    使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:openvpn 0:关闭 1:开启 ...... 6:关闭 ...

  8. POJ 3189 二分+Dinic

    题意: 思路: 二分跨度 枚举最低座次 建图:源点向每头牛连边权为1的边 每头牛向当前枚举的B的区间这段连上边权为1的边 所有座次向汇点连边权为牛棚容量的边 判判流量是不是等于n 一开始写得是直接枚举 ...

  9. C++ BigInteger模板

    #include <cstdio> #include <cstring> #include <string> #include <iostream> # ...

  10. 洛谷P2633 Count on a tree

    题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始为0,即第一个 ...