一个主要的页面,其中包裹了一个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的实际使用(个人实操)的更多相关文章

  1. 前端上传组件Plupload使用指南

    我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...

  2. 【转】前端上传组件Plupload

    [转自博客园-无双] html5原生的给我们提供了文件上传的API,Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代 ...

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

    http://www.cnblogs.com/2050/p/3913184.html Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的 ...

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

    我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...

  5. 文件上传插件 -- plupload

    refresh:重新实例化uploader removeFile(id):从file中移除某个文件 splice(start,length):从队列中start开始删除length个文件, 返回被删除 ...

  6. 前端上传组件 - Plupload

    http://www.cnblogs.com/KTblog/p/4740852.html 效果: 起始界面. ------------- 可以上上传单个文件. ------------- 可以上传多个 ...

  7. 多图片/文件上传 - SwfUpload/PlUpload

    <文件上传利器SWFUpload使用指南> <前端上传组件Plupload使用指南>

  8. JEECG 上传插件升级-标签

    前言: 现有的uploadify上传是基于swf的,随着H5的普及,flash即将退出历史舞台,JEECG团队本着与时俱进的原则,将全面升级JEECG系统中的上传功能,采用新式上传插件plupload ...

  9. JEECG 上传插件升级-代码生成器

    前言: 现有的uploadify上传是基于swf的,随着H5的普及,flash即将退出历史舞台,JEECG本着与时俱进的原则,将全面升级JEECG系统中的上传功能,采用新式上传插件plupload,此 ...

随机推荐

  1. GMap.NET 显示GIF图标的定制

    利用System.Drawing.ImageAnimator类实现GIF图标显示 public class GMapMarkerImage : GMapMarker { private Image i ...

  2. bzoj5102

    $贪心$ $按左端点排序.$ $当我们钦定了最右的左端点,那么自然希望右端点尽量靠右$ $考虑之前的区间,那么我们相当于选之前的区间中第k大的右端点$ $堆维护一下就可以了,每次把新的元素放进堆,如果 ...

  3. SpringMVC笔记- 不配置HandlerMapping

    使用SpringMVC框架时发现有的配置了HandlerMapping,而有的没有,那么它们有什么区别呢?不配置能不能正常使用框架呢? 下面我们看一看不配置任何HandlerMapping时,框架会使 ...

  4. C - Bear and Five Cards

    Description A little bear Limak plays a game. He has five cards. There is one number written on each ...

  5. WeFlow 简单使用教程

    一.前言 WeFlow 是什么?一个高效.强大.跨平台的前端开发工作流工具.(官网定义),下载那些你们都知道,我就不一 一介绍了.下面我说一下简单使用: 二.使用教程 首先,我们使用 WeFlow 是 ...

  6. MS SQL server对象类型type

    执行下面代码,将获取ms sql server对象类型以及其说明 IF OBJECT_ID('tempdb.dbo.#type') IS NOT NULL DROP TABLE #type CREAT ...

  7. CSS动画的性能分析和浏览器GPU加速

    此文已由作者袁申授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 有数的数据大屏可以在一块屏幕上展示若干张不同的图表,以炫酷的方式展示各种业务数据.其中有些图表使用CSS实现了 ...

  8. Spring Boot 2.x(十七):快速入门Elastic Search

    What -- Elasticsearch是什么? Elasticsearch是一个基于Lucene的搜索服务器,Elasticsearch也是使用Java编写的,它的内部使用Lucene做索引与搜索 ...

  9. JavaWeb学习——获取类路径下的资源

    对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源. 获取资源的方式有两种,利用Class或ClassLoader. Class类的getResourceAsStream( ...

  10. POJ2752【KMP-next数组含义】

    题意: 给一个字符串,求满足既是这个字符串的前缀,又是这个字符串的后缀,从小到大输出长度 思路: 细讲next数组含义博文:点我 首先要满足前缀的呀. KMP的next数组干的是子串最长后缀. 所以从 ...