java commons组件 swfupload组件 文件上传 servlet jsp

1.官网swfupload是php版本的,搞个jsp版本的。

index.jsp:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 5 <html xmlns="http://www.w3.org/1999/xhtml" >
 6 <head>
 7 <title>SWFUpload Demos - Simple Demo</title>
 8 <link href="css/default.css" rel="stylesheet" type="text/css" />
 9 <script type="text/javascript" src="js/swfupload/swfupload.js"></script>
10 <script type="text/javascript" src="js/swfupload.queue.js"></script>
11 <script type="text/javascript" src="js/fileprogress.js"></script>
12 <script type="text/javascript" src="js/handlers.js"></script>
13 <script type="text/javascript">
14         var swfu;
15 
16         window.onload = function() {
17             var settings = {
18                 flash_url : "js/swfupload/swfupload.swf",
19                 upload_url: "add",
20                 post_params: {"ddd" : "123"},
21                 file_size_limit : "100 MB",
22                 file_types : "*.*",
23                 file_types_description : "All Files",
24                 file_upload_limit : 100,
25                 file_queue_limit : 0,
26                 custom_settings : {
27                     progressTarget : "fsUploadProgress",
28                     cancelButtonId : "btnCancel"
29                 },
30                 debug: false,
31 
32                 // Button settings
33                 button_image_url: "images/TestImageNoText_65x29.png",
34                 button_width: "65",
35                 button_height: "29",
36                 button_placeholder_id: "spanButtonPlaceHolder",
37                 button_text: '<span class="theFont">Hello</span>',
38                 button_text_style: ".theFont { font-size: 16; }",
39                 button_text_left_padding: 12,
40                 button_text_top_padding: 3,
41                 
42                 // The event handler functions are defined in handlers.js
43                 file_queued_handler : fileQueued,
44                 file_queue_error_handler : fileQueueError,
45                 file_dialog_complete_handler : fileDialogComplete,
46                 upload_start_handler : uploadStart,
47                 upload_progress_handler : uploadProgress,
48                 upload_error_handler : uploadError,
49                 upload_success_handler : uploadSuccess,
50                 upload_complete_handler : uploadComplete,
51                 queue_complete_handler : queueComplete    // Queue plugin event
52             };
53 
54             swfu = new SWFUpload(settings);
55          };
56     </script>
57 </head>
58 <body>
59 <div id="header">
60     <h1 id="logo"><a href="../">SWFUpload</a></h1>
61     <div id="version">v2.2.0</div>
62 </div>
63 
64 <div id="content">
65     <h2>Simple Demo</h2>
66     <form id="form1" action="add" method="post" enctype="multipart/form-data">
67         <p>This page demonstrates a simple usage of SWFUpload.  
68         It uses the Queue Plugin to simplify uploading or cancelling all queued files.</p>
69 
70             <div class="fieldset flash" id="fsUploadProgress">
71             <span class="legend">Upload Queue</span>
72             </div>
73         <div id="divStatus">0 Files Uploaded</div>
74             <div>
75                 <span id="spanButtonPlaceHolder"></span>
76                 <input id="btnCancel" type="button" value="Cancel All Uploads" 
77                     onclick="swfu.cancelQueue();" disabled="disabled" 
78                     style="margin-left: 2px; font-size: 8pt; height: 29px;" />
79             </div>
80     </form>
81 </div>
82 </body>
83 </html>

web.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3 xmlns="http://java.sun.com/xml/ns/javaee" 
 4 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
 6 id="WebApp_ID" version="2.5">
 7   <display-name>swfupload</display-name>
 8   <welcome-file-list>
 9     <welcome-file>index.html</welcome-file>
10     <welcome-file>index.htm</welcome-file>
11     <welcome-file>index.jsp</welcome-file>
12     <welcome-file>default.html</welcome-file>
13     <welcome-file>default.htm</welcome-file>
14     <welcome-file>default.jsp</welcome-file>
15   </welcome-file-list>
16   <servlet>
17     <description></description>
18     <display-name>AddServlet</display-name>
19     <servlet-name>AddServlet</servlet-name>
20     <servlet-class>com.zenger.servlet.AddServlet</servlet-class>
21   </servlet>
22   <servlet-mapping>
23     <servlet-name>AddServlet</servlet-name>
24     <url-pattern>/add</url-pattern>
25   </servlet-mapping>
26 </web-app>

AddServlet.java:

 1 package com.zenger.servlet;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.util.Iterator;
 6 import java.util.List;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 
13 import org.apache.commons.fileupload.FileItem;
14 import org.apache.commons.fileupload.FileUploadException;
15 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
16 import org.apache.commons.fileupload.servlet.ServletFileUpload;
17 
18 /**
19  * servlet利用commons组件实现的文件上传
20  */
21 public class AddServlet extends HttpServlet {
22     private static final long serialVersionUID = 1L;
23        
24     /**
25      * @see HttpServlet#HttpServlet()
26      */
27     public AddServlet() {
28         super();
29         // TODO Auto-generated constructor stub
30     }
31 
32     /**
33      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
34      */
35     protected void doGet(HttpServletRequest request, HttpServletResponse response) 
36             throws ServletException, IOException {
37         doPost(request, response);
38     }
39 
40     /**
41      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
42      */
43     protected void doPost(HttpServletRequest request, HttpServletResponse response) 
44             throws ServletException, IOException {
45         System.out.println("---------start------------");
46         String path = this.getServletContext().getRealPath("/file");
47         DiskFileItemFactory factory = new DiskFileItemFactory();
48         factory.setRepository(new File(path));
49         factory.setSizeThreshold(1024*1024);
50         ServletFileUpload sfu = new ServletFileUpload(factory);
51         try {
52             List<FileItem> fis = sfu.parseRequest(request);
53             Iterator<FileItem> it = fis.iterator();
54             while (it.hasNext()) {
55                 FileItem fi = (FileItem) it.next();
56                 if (!fi.isFormField()) { //文件
57                     String fileName = fi.getName();
58                     System.out.println("file name="+fileName);
59                     fi.write(new File(path ,fileName));//写入硬盘
60                 }
61             }
62         } catch (FileUploadException e) {
63             e.printStackTrace();
64         } catch (Exception e) {
65             e.printStackTrace();
66         }
67     }
68 
69 }

2.工程截图

3.是不是很简单啊。

posted on 2013-10-09 14:30  zenger1025  阅读(285)  评论(0)    收藏  举报

导航