The java component smartupload implements the ability to upload files
- 2020-05-10 18:08:45
- OfStack
jsp and serlvet are used to realize the simplest upload for your reference. The details are as follows
1. index.jsp
<%@ 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>
Name: <input type="text" name="uname"/>
<br>
Upload a file :<input type="file" name="pic"/>
<br>
<input type="submit" value=" submit "></input>
</form>
</body>
</html>
2. action has jumped to servlet of upload, so it needs to be configured in web. xml, web. xml:
<?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 files mapped to, SmartuploadAction.java:
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();
// Due to the multipart/form-data The transmission causes req Can't use, so use smartupload Produced by the request
Request reqest = su.getRequest();
// To obtain pageContext object
PageContext pageContext = JspFactory.getDefaultFactory()
.getPageContext(this, req, resp, null, true, 8192, true);
su.initialize(pageContext);
try {
su.upload();
// Upload to this project upload directory
su.save("upload");
} catch (SmartUploadException e) {
e.printStackTrace();
}
// use smartupload Produced by the reqest Object to get the parameters passed by the page
String uname = reqest.getParameter("uname");
System.out.println(uname);
}
}
Note: the package used is smartupload.zip.