文件上传:tomcat+servlet
dependency
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
项目结构
folder java
package com.shit.stest1
UploadServlet.jsp
folder webapp
upload.jsp
前端页面:upload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="upload" enctype="multipart/form-data" method="post">
<input type="file" accept="" id="upfile" name="upfile">
<input type="submit" value="提交">
</form>
</body>
</html>
后端:UploadServlet
package com.shit.stest1;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.util.UUID;
@MultipartConfig(location="D:/ware", fileSizeThreshold=1024*102,maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
/**
* if the file-size is beyond limit, browser shows ERR_CONNECTION_RESET
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Part part=req.getPart("upfile");
String fileName=part.getSubmittedFileName();
String typeName=fileName.substring(fileName.lastIndexOf('.'));
String responseWord="";
try{
part.write(UUID.randomUUID()+typeName);
responseWord=fileName+" uploading is success";
}catch (Exception e){
responseWord=fileName+" uploading is failure";
}
resp.getWriter().print(responseWord);
}
}
测试
浏览器访问/upfile.jsp,上传文件,跳转upfile页面(uploadServlet),显示结果。
在本地文件夹“D:/ware”中查看对应的文件,注意名称是uuid的随机名。
说明:如未选择文件便上传,会抛异常页面。

浙公网安备 33010602011771号