jsp上传文件代码实现
时间: 2023-07-26 17:35:59 浏览: 99
JSP上传文件可以使用以下代码实现:
1. HTML页面代码
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="upload.jsp" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
</body>
</html>
```
2. JSP页面代码
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%
String savePath = "D:/upload"; // 上传文件存储目录
String tempPath = request.getServletContext().getRealPath("/WEB-INF/temp"); // 临时文件存储目录
File tempFile = new File(tempPath);
if (!tempFile.exists()) {
tempFile.mkdirs();
}
String message = "";
try {
// 创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置工厂的缓冲区大小,这里是4KB
factory.setSizeThreshold(4 * 1024);
// 设置上传文件的临时目录
factory.setRepository(tempFile);
// 创建一个ServletFileUpload对象
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的大小限制,这里是10MB
upload.setFileSizeMax(10 * 1024 * 1024);
// 解析request对象,并返回一个List集合
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
// 获取上传文件的名称
String fileName = item.getName();
// 获取上传文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
// 生成新的文件名
String newFileName = UUID.randomUUID().toString() + suffixName;
// 创建一个文件对象
File saveFile = new File(savePath, newFileName);
// 将上传文件保存到指定路径
item.write(saveFile);
message = "文件上传成功!";
}
}
} catch (Exception e) {
e.printStackTrace();
message = "文件上传失败!";
}
request.setAttribute("message", message);
request.getRequestDispatcher("/result.jsp").forward(request, response);
%>
```
3. result.jsp页面代码
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传文件结果</title>
</head>
<body>
<p>${message}</p>
</body>
</html>
```
以上代码实现了文件上传功能,将上传的文件保存到指定目录,并返回上传结果。注意要在web.xml中配置multipart-config元素,指定上传文件的大小限制和临时文件存储目录。
阅读全文