日期:2014-05-16 浏览次数:20339 次
SWFUpload官方的例子都是PHP的,在这里提供一个Java版的最简单的使用例子,使用JSP页面完成所有操作。
?
实现上传,分为三步:
?
1、JavaScript设置SWFUpload部分(与官方例子类似):
?
var upload; window.onload = function() { upload = new SWFUpload({ // 处理文件上传的url upload_url: "${pageContext.request.contextPath}/swfupload/example.jsp?upload=1", // 上传文件限制设置 file_size_limit : "10240", // 10MB file_types : "*.jpg;*.gif;*.png", //此处也可以修改成你想限制的类型,比如:*.doc;*.wpd;*.pdf file_types_description : "Image Files", file_upload_limit : "0", file_queue_limit : "1", // 事件处理设置(所有的自定义处理方法都在handler.js文件里) file_dialog_start_handler : fileDialogStart, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, // 按钮设置 button_image_url : "swfupload/xpbutton.png", // 按钮图标 button_placeholder_id : "spanButtonPlaceholder", button_width: 61, button_height: 22, // swf设置 flash_url : "swfupload/swfupload.swf", custom_settings : { progressTarget : "fsUploadProgress", cancelButtonId : "btnCancel" }, // Debug 设置 debug: false }); }
?
2、页面显示部分:
?
<div class="flash" id="fsUploadProgress"></div> <div style="padding-left: 5px;"> <span id="spanButtonPlaceholder"></span> <input id="btnCancel" type="button" value="取消" onclick="cancelQueue(upload);" disabled="disabled" style="margin-left: 2px; height: 22px; font-size: 8pt;" /> </div>
?
3、Java处理文件上传部分:
?
String uploadSign = request.getParameter("upload"); String rootPath = request.getParameter("rootPath"); String path = request.getParameter("path"); if(rootPath == null) rootPath = ""; rootPath = rootPath.trim(); if(rootPath.equals("")){ rootPath = application.getRealPath("/swfupload/files"); } if(path == null) { path = rootPath; }else{ path = new String(Base64.decodeBase64(path.getBytes())); } //上传操作 if(null != uploadSign && !"".equals(uploadSign)){ FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); //upload.setHeaderEncoding("UTF-8"); try{ List items = upload.parseRequest(request); if(null != items){ Iterator itr = items.iterator(); while(itr.hasNext()){ FileItem item = (FileItem)itr.next(); if(item.isFormField()){ continue; }else{ //以当前精确到秒的日期为上传的文件的文件名 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddkkmmss"); String type = item.getName().split("\\.")[1];//获取文件类型 File savedFile = new File(path,sdf.format(new Date())+"."+type); item.write(savedFile); } } } }catch(Exception e){ e.printStackTrace(); } }
?
OK,完成!
?
在这里上传个例子,方便使用学习。
?