前端上传插件Plupload的实际使用(个人实操)
一个主要的页面,其中包裹了一个iframe页面,在项目中,这个iframe页面包裹在主页面的div标签中,主要用于上传文件附件。
用的是plupload.full插件,主要引入以下几个js:
jquery-1.11.1.js; moxie.js; plupload.full.min.js; plupload.dev.js;
css部分:
jquery.plupload.queue.css;
以下是利用该插件实现的完整的前端代码:
$(window).load(function () {
var uploader = $("#uploader").pluploadQueue({
browse_button : 'uploader_browse',//开启文件上传的按钮id
runtimes: 'html5,flash,silverlight,html4',
url: "地址为传输数据地址"
max_file_size: '10mb',//最大附件大小
unique_names: true,//默认为false。当值为true时会为每个上传的文件生成一个唯一的文件名,并作为额外的参数post到服务器端,参数明为name,值为生成的文件名。
chunk_size: '2mb',
unique_names: false,
flash_swf_url: '<%=contextPath%>/scripts/plupload/js/Moxie.swf',
silverlight_xap_url: '<%=contextPath%>/scripts/plupload/js/Moxie.xap',
preinit: {
UploadComplete: function () {
window.location.reload();
}
}
});
uploader.init();
$('form').submit(function (e) {
var uploader = $('#uploader').pluploadQueue();
if (uploader.files.length > 0) {
// When all files are uploaded submit form
uploader.bind('StateChanged', function () {
if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
$('form')[0].submit();
}
});
uploader.start();
} else {
//alert('请先上传数据文件.');
}
return false;
});
if (uploader == null) {
return;
}
uploader.bind('UploadComplete', function (uploader, files) {
window.location.reload();
});
uploader.bind('FilesAdded', function (uploader, files) {
var _h = 37;
if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
_h = 35;
}
if (uploader.files.length > 0) {
$(".moxie-shim").css({top: $(".plupload_add").position().top - _h + (_h)});
} else {
$(".moxie-shim").css({top: $(".plupload_add").position().top - _h});
}
window.parent.SetCwinHeight2("claimFileList");
});
uploader.bind('FilesRemoved', function (uploader, files) {
var _h = 37;
if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
_h = 35;
}
if (uploader.files.length > 0) {
$(".moxie-shim").css({top: $(".plupload_add").position().top - _h + (_h)});
} else {
$(".moxie-shim").css({top: $(".plupload_add").position().top});
}
window.parent.SetCwinHeight2("claimFileList");
});
uploader.bind('BeforeUpload', function (uploader, files) {
var docName = $(".plupload_delete .plupload_file_name").text();
var urlStr = "上传参数保存地址"
uploader.setOption("url", urlStr);
var EASFileDocName = "";
var items = $("#SelectorOptions a");
for (var i = 0; i < items.length; i++) {
if (items[i].innerText) {
EASFileDocName += "&eas&" + items[i].innerText;
}
}
if (EASFileDocName.indexOf("&eas&" + docName) < 0) {
EASFileDocName += "&eas&" + docName;
}
EASFileDocName = EASFileDocName.substring(5);
setCookie("EASFileDocName", EASFileDocName, 365);
});
var EASFileDocName = getCookie("EASFileDocName");
if (EASFileDocName) {
var dns = EASFileDocName.split("&eas&");
for (var i = 0; i < dns.length; i++) {
$("#SelectorOptions").append("<li><a href='javascript:void(0)'>" + dns[i] + "</a></li>");
}
}
var items = $("#SelectorOptions a");
$("#SelectorArr").click(function () {
$("#SelectorOptions")[0].style.display = $("#SelectorOptions")[0].style.display == "block" ? "none" : "block";
});
for (var i = 0; i < items.length; i++) {
items[i].onclick = function () {
$("#SelectorOptions").hide();
$("#docNameInput").val(this.innerText);
};
}
});
function testForm() {
}
function deleteFile(id){
var onReturn = confirm("确认删除附件吗?");
if(!onReturn){
return;
}
document.getElementById('fileId').value = id;
loadingBox_simple();
var action = "删除文件时的数据发送地址";
document.getElementById('listfile').action = action;
document.getElementById('listfile').submit();
}
function viewDoc_old(docFile)
{
XMLHttp.sendReq("post", "url"" , function(http_request){
var rspText=http_request.responseText;
var isTrue=false;
if(rspText!=""){
var results=http_request.responseXML;
var rsflag=results.getElementsByTagName("rsflag")[0].childNodes;
var flag=getNodeValue(rsflag[0]);
}else{
isTrue=false;
//转换错误
MessageBox.alert("\u751f\u6210\u9884\u89c8\u6587\u6863\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\uff01");
return;
}
});
}
function viewDoc(docFile){
var path = 'url';
// var params = 'claimNo='+claimNo;
var params = '';
XMLHttp.sendReq("post", path,params, showResultInfo);
MessageBox.alert("正在生成文档预览视图,请稍候...");
}
function showResultInfo(http_request){
var rspText=http_request.responseText;
alert(rspText);
if(rspText!=""){
cancelDivBox("screen_div_p","screen_box_p","screen_iframe_p");
MessageBox.alert(rspText);
}
}
这些为前端利用插件对附件进行上传的代码,在本人目前参与的项目中有效。
需要使用指南可参考该地址:http://www.cnblogs.com/2050/p/3913184.html
(该插件在谷歌主流楼浏览器内没问题,但是在IE和火狐就有bug,在本人此次的项目中,不管用哪个版本的插件,bug是一直存在的(即在ie和火狐中第一次点击无效),所以只能想其他办法,而我的办法是在页面加载完之后,对iframe页面进行一个首次刷新,具体见下页)
前端上传插件Plupload的实际使用(个人实操)的更多相关文章
- 前端上传组件Plupload使用指南
我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...
- 【转】前端上传组件Plupload
[转自博客园-无双] html5原生的给我们提供了文件上传的API,Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代 ...
- 【转】前端上传组件Plupload使用指南
http://www.cnblogs.com/2050/p/3913184.html Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的 ...
- [Pulgin] 前端上传组件Plupload使用指南
我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...
- 文件上传插件 -- plupload
refresh:重新实例化uploader removeFile(id):从file中移除某个文件 splice(start,length):从队列中start开始删除length个文件, 返回被删除 ...
- 前端上传组件 - Plupload
http://www.cnblogs.com/KTblog/p/4740852.html 效果: 起始界面. ------------- 可以上上传单个文件. ------------- 可以上传多个 ...
- 多图片/文件上传 - SwfUpload/PlUpload
<文件上传利器SWFUpload使用指南> <前端上传组件Plupload使用指南>
- JEECG 上传插件升级-标签
前言: 现有的uploadify上传是基于swf的,随着H5的普及,flash即将退出历史舞台,JEECG团队本着与时俱进的原则,将全面升级JEECG系统中的上传功能,采用新式上传插件plupload ...
- JEECG 上传插件升级-代码生成器
前言: 现有的uploadify上传是基于swf的,随着H5的普及,flash即将退出历史舞台,JEECG本着与时俱进的原则,将全面升级JEECG系统中的上传功能,采用新式上传插件plupload,此 ...
随机推荐
- python3 分布式进程(跨机器)BaseManager(multiprocessing.managers)
A机器负责发送任务和接受结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #ta ...
- C++之const类成员变量,const成员函数
const修饰类的成员函数 const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当co ...
- 一种C#开发ActiveX的思路
由于某些原因,不得不在C#下开发ActiveX插件,而这会带来很多问题,主要有无法在线安装.无法自动更新.由于本人水平有些,这两个问题不一定是这样,如果有大侠知道C#下开发ActiveX插件可实现在线 ...
- Unity4.0配置
关于Unity4.0的使用: 一 安装Unity 在程序包管理器控制台输入命令:Istall-Pckage unity.mvc安装后会在App_Start中生成UnityConfig.cs 和Unit ...
- 【Linux学习】Linux用户管理1—用户查询指令、用户切换
Linux用户管理1-用户查询指令.用户切换 一.用户查询指令 who: 查看当前在线用户情况 -a:显示所有用户的所有信息 -m:显示运行该程序的用户名,和"who am I"的 ...
- java web 学习-网络资源
[网络收集] 1. JavaWeb学习总结——JSP中的九个内置对象 2. Jsp九大内置对象以及四个作用域 他人学习汇总资源 1. http://www.cnblogs.com/xdp-gacl/t ...
- PhpStorm插件之Api Debugger
安装插件 File->Setting->Pluugins 搜索 Api Debugger 如何使用 安装完插件后,RESTART IDE,在编辑器右侧 即可找到最新安装的 Api D ...
- POJ3734【状压枚举】
题意: 给你两个01矩阵,去掉矩阵B的某些行和某些列,问处理后的矩阵B能否变成矩阵A: 思路: 数据较小,状压枚举B矩阵列的数量=A矩阵列的数量时的状态,然后搞定了列,贪心判断B矩阵的行就好了: #i ...
- [Xcode 实际操作]二、视图与手势-(3)UIView视图的基本操作
目录:[Swift]Xcode实际操作 本文将实现视图的添加与删除,以及切换视图在父视图中的层次. import UIKit class ViewController: UIViewControlle ...
- web项目数据存入mysql数据库中文乱码问题
刚开始怀疑是项目中编码设置问题,发现在web.xml中已经有过设置:后来dubug显示数据在传输的过程中一切正常,怀疑是数据库编码问题,然后查看mysql编码: show variables like ...