java组件smartupload实现上传文件功能

时间:2022-09-14 18:11:05

使用jsp和serlvet来实现最简单的上传,供大家参考,具体内容如下

1、页面index.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
 <title>index.jsp</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 </head>
 <body>
 <form action="upload" method="post" enctype="multipart/form-data">
 <br>
 姓名:<input type="text" name="uname"/>
 <br>
 上传文件:<input type="file" name="pic"/>
 <br>
 <input type="submit" value="提交"></input>
 </form>
 </body>
</html>

2、action跳转到了upload的servlet,所以要web.xml里面配置,web.xml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <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>
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

3、映射到的action文件,SmartuploadAction.java:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.pop.action;
 
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;
 
import com.soft4j.httpupload4j.Request;
import com.soft4j.httpupload4j.SmartUpload;
import com.soft4j.httpupload4j.SmartUploadException;
 
public class SmartuploadAction extends HttpServlet {
 private static final long serialVersionUID = -8610555375032925108L;
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, IOException {
 req.setCharacterEncoding("utf-8");
 resp.setCharacterEncoding("utf-8");
 SmartUpload su = new SmartUpload();
 // 由于multipart/form-data的传输原因导致req不能使用,所以使用smartupload产生的request
 Request reqest = su.getRequest();
 // 获得pageContext对象
 PageContext pageContext = JspFactory.getDefaultFactory()
  .getPageContext(this, req, resp, null, true, 8192, true);
 su.initialize(pageContext);
 try {
  su.upload();
  // 上传到本项目的upload目录
  su.save("upload");
 } catch (SmartUploadException e) {
  e.printStackTrace();
 }
 // 使用smartupload产生的reqest对象来获得页面传递的参数
 String uname = reqest.getParameter("uname");
 System.out.println(uname);
 }
}

最后说明:使用的组件包为smartupload.zip。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。