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();
- }
- }