client端,自定义table布局
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<div id="container" style="margin-bottom:10px;height:30px;">
<button id="pickfiles" class="btn btn-primary pull-left">Select files</button>
<button id="uploadfiles" class="btn btn-primary pull-left" style="margin-left:20px;">Upload files</button>
</div>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr><th>File Name<th>Size</th><th>Status</th><th>Operation</th><tr>
</thead>
<tbody id="attachmentData">
<c:if test="${not empty attachmentList}">
<c:forEach var="attachment" varStatus="vs" items="${attachmentList}">
<tr id="item${vs.count}">
<td class="text-center">
<c:out value="${attachment.fileName}"></c:out>
</td>
<td class="text-center">
Not Available
</td>
<td class="text-center">
100%
</td>
<td class="text-center">
<a id="${attachment.id}" class="btn btn-danger btn-mini" href='javascript:void(0)' name="${attachment.id}" onclick="deleteById('${attachment.id}')" >
Delete
</a>
</td>
</tr>
</c:forEach>
</c:if>
</tbody>
</table>
<pre id="console" style="display:none;"></pre>
<script type="text/javascript" src="${path}/resources/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="${path}/resources/js/plupload/plupload.full.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var uploader = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'pickfiles', // you can pass in id...
container: document.getElementById('container'), // ... or DOM Element itself
url : "${path}/mvc/employee/additionalFiles/upload?employeeId="+$("#employeeId").val(),
filters : {
max_file_size : '10mb',
mime_types: [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip,rar"},
{title : "Word files", extensions : "doc,docx"},
{title : "PPT files", extensions : "ppt,pps"},
{title : "Excel files", extensions : "xlsx"},
{title : "Other files", extensions : "pdf"}
]
},
// Flash settings
flash_swf_url : '${path}/resources/js/plupload/Moxie.swf',
// Silverlight settings
silverlight_xap_url : '${path}/resources/js/plupload/Moxie.xap',
init: {
PostInit: function(up) {
document.getElementById('uploadfiles').onclick = function() {
uploader.start();
return false;
};
},
FilesAdded: function(up, files) {
plupload.each(files, function(file) {
var html = "<tr id='"+file.id+"'>"+
"<td class='text-center'>"+file.name+"</td>"+
"<td class='text-center'>"+plupload.formatSize(file.size)+"</td>"+ "<td class='text-center' name='status'>0%</td>"+
"<td class='text-center'>"+
"<a class='btn btn-danger btn-mini' href='javascript:void(0)' name='remove'>Delete</a>"+
"</td>"+
"</tr>";
$("#attachmentData").append(html);
});
$("a[name='remove']").each(function(){
$(this).click(function(){
up.removeFile(up.getFile($(this).parent().parent().attr("id")));
$(this).parent().parent().remove();
});
});
},
UploadProgress: function(up, file) {
$("#"+file.id).children("td[name='status']").html('<span>' + file.percent + "%</span>");
},
FileUploaded: function(up, file, response) {
var attachmentList = $.parseJSON(response.response).attachmentList;
if(null != attachmentList){
var attachment = attachmentList[0];
var html = "<a id='"+attachment.id+"' class='btn btn-danger btn-mini' href='javascript:void(0)' name='"+attachment.id+"' onclick='deleteByIdAfterUploaded($(this))' >Delete</a>";
$("#"+file.id+" td:last-child").html(html);
}
},
Error: function(up, err) {
$('#console').append("<span><b style='color:#ee5f5b;'>Error</b> # <b>" + err.file.name + "</b> : " + err.message+"</span>\n");
$('#console').fadeIn();
}
}
});
uploader.init();
});
function deleteById(attachmentId){
$.post("${path}/mvc/employee/additionalFiles/delete/"+attachmentId,function(result){
if(!result.result){
common.showMessage(result.message);
}else{
$("#"+attachmentId).parent().parent("tr").remove();
common.showMessage("delete success!");
}
});
}
function deleteByIdAfterUploaded(element){
var attachmentId = $(element).attr("name");
deleteById(attachmentId);
}
</script>
server端
@RequestMapping(value = "/additionalFiles/upload", produces = "application/json;charset=UTF-8")
public void uploadAdditionalFiles(@RequestParam("employeeId") Long employeeId,HttpServletRequest request,HttpServletResponse response) {
List<AppCommAttachment> attachmentList = new ArrayList<AppCommAttachment>();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultiValueMap<String, MultipartFile> map = multipartRequest.getMultiFileMap();
if (map != null) {
Iterator<String> iter = map.keySet().iterator();
while (iter.hasNext()) {
String str = iter.next();
List<MultipartFile> fileList = map.get(str);
for (MultipartFile mpf : fileList) {
AppCommAttachment attachment = attachmentService.uploadAttachmentUnderEmployee(employeeId, mpf, Boolean.FALSE);
attachmentList.add(attachment);
}
}
}
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("attachmentList", attachmentList);
response.getWriter().println(jsonObject.toString());
} catch (IOException e) {
}
}
note that:如果想使用插件自带的table布局,需要引入jquery ui css,并且保证ui的主题一致。
分享到:
相关推荐
在`plupload-2.1.2`压缩包中,可能包含以下内容: 1. `plupload.full.min.js`:完整版的Plupload JavaScript库,包含了所有功能。 2. `plupload.html5.js`、`plupload.flash.js`等:针对不同技术的运行时引擎。 3. ...
1. **HTML5上传**:Plupload利用HTML5的File API,提供了无插件的文件上传方式。通过拖放、选择文件等交互方式,用户可以方便地上传大文件,并且支持断点续传、多文件并发上传,极大地提高了用户体验。 2. **Flash...
**plupload-3.1.2.zip** 是一个包含 **plupload** 插件的压缩文件,该插件是前端开发中的一个强大工具,尤其在处理文件上传功能时。plupload是一个开源的JavaScript库,专注于提供高效、稳定且功能丰富的上传解决...
这个压缩包“plupload-2.3.6.zip”包含了所有必要的资源和文档,帮助开发者在项目中集成这一功能。 Plupload的核心特性包括: 1. **多浏览器支持**:Plupload支持多种浏览器,包括Internet Explorer、Firefox、...
例如,`plupload.full.min.js`包含了完整功能的Plupload库,而`plupload.queue.js`则可能是一个用于处理文件队列管理的插件。 包文件中可能包含以下内容: 1. `plupload.html`:HTML5运行时的基础上传界面示例。 2....
"plupload-java-servlet-master.zip"是一个包含Java实现的plupload上传组件的源代码库,为开发者提供了高效、稳定的文件上传解决方案。本文将深入探讨plupload的原理,JavaServlet的运用,以及如何在毕业设计项目中...
本文将深入探讨Plupload的核心特性、配置选项以及如何在项目中集成和使用它。 1. **核心特性** - **跨浏览器兼容性**:Plupload 支持所有主流浏览器,包括Chrome, Firefox, Safari, Opera, 以及Internet Explorer ...
此“plupload-php+批量上传jquery[附加说明书版].zip”压缩包提供了使用Plupload与PHP和jQuery进行批量文件上传的详细资源。 Plupload的核心特性包括: 1. **多浏览器兼容性**:Plupload使用Flash、Silverlight、...
标题中的"plupload-php批量上传图片-jquery"指的是一个基于PHP和jQuery的多文件上传解决方案,使用了名为Plupload的JavaScript库。Plupload是一个强大的、跨浏览器的文件上传组件,支持断点续传、多线程上传、各种...
plupload简单的API文档,希望能对学习的人有所帮助 一、配置参数 二、各种事件说明 三、Plupload实例的属性 四、Plupload实例的方法 五、文件对象的属性和方法 六、QueueProgress 对象的属性 七、plupload命名空间上...
plupload拥有多种上传方式:HTML5、flash、silverlight以及传统的<input type=”file” />。Plupload会自动侦测当前...所以你完全不用去操心当前的浏览器支持哪些上传方式,Plupload会自动为你选择最合适的方式。
"plupload-simple-wrapper"是针对Plupload的一个简单封装,它旨在简化Plupload在项目中的集成和使用过程。 在JavaScript中,Plupload的复杂性在于它提供了丰富的配置选项和事件处理,这对于开发者来说既是优点也是...
**plupload上传插件**是一款强大的、跨平台的文件上传组件,它支持多种浏览器和多种技术栈,如Flash、HTML5、Silverlight和Gears,确保在不同环境下都能实现稳定高效的文件上传功能。该插件设计的目标是提供一个统一...
一个可以运行的项目,关于大附件上传这块的关键技术,在mysql中创建 upload 数据库,导入sql文件,运行项目,修改 database....前端用了plupload的js插件 没有加mybatis和spring更具需要自己加 如果满意可以请评论点赞
在实际应用中,Plupload可以通过JavaScript API和不同的插件轻松集成到任何Web项目中。它提供了XMLHttpRequest、IFrame、Flash和Silverlight四种上传方式,根据浏览器能力自动选择最佳方案。开发者还可以利用...
在使用Plupload-2.1.3 压缩包时,您会发现其中包含以下文件和目录: - `examples`:示例代码,展示了如何在实际项目中集成和使用Plupload。 - `docs`:文档资料,包括API参考和使用指南。 - `js`:JavaScript库文件...