首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java SmartUpload 組件實現文件上傳完整範例

     編輯:Java 相關知識

專案結構

WebRoot/
├── index.jsp          // 上傳頁面
├── WEB-INF/
│   ├── web.xml        // Servlet 映射
│   └── lib/
│       └── smartupload.jar
└── src/
    └── com/pop/action/SmartuploadAction.java

1. 前端頁面 index.jsp

<form action="upload" method="post" enctype="multipart/form-data">
    姓名:<input type="text" name="uname"/><br/>
    上傳文件:<input type="file" name="pic"/><br/>
    <input type="submit" value="提交"/>
</form>

2. web.xml 配置

<servlet>
    <servlet-name>uploadAction</servlet-name>
    <servlet-class>com.pop.action.SmartuploadAction</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>uploadAction</servlet-name>
    <url-pattern>/upload/*</url-pattern>
</servlet-mapping>

3. Servlet 處理類

public class SmartuploadAction extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        SmartUpload su = new SmartUpload();
        PageContext pageContext = JspFactory.getDefaultFactory()
                .getPageContext(this, req, resp, null, true, 8192, true);
        su.initialize(pageContext);
        try {
            su.upload();
            su.save("upload");  // 儲存至項目 upload 目錄
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }
        Request request = su.getRequest();
        String uname = request.getParameter("uname");
        System.out.println("用戶:" + uname);
    }
}

關鍵點總結

  • 表單必須設定 enctype="multipart/form-data"
  • SmartUpload 封裝了請求解析,透過 getRequest() 獲取普通參數
  • save("upload") 會自動建立目錄並處理同名文件覆蓋
  • 依賴 smartupload.jar,需放入 WEB-INF/lib
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved