servlet文件上传下载
时间: 2023-11-15 07:07:04 浏览: 94
servlet 文件上传下载
Servlet文件上传功能可以通过使用注解@MultipartConfig将Servlet标识为支持文件上传,然后将multipart/form-data的POST请求封装成Part对象,通过Part对象对上传的文件进行操作。以下是一个文件上传的Servlet示例代码:
```java
@WebServlet("/uploadServlet")
@MultipartConfig // 如果是文件上传,必须要设置该注解!
public class UploadServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("文件上传...");
// 设置请求的编码格式
req.setCharacterEncoding("UTF-8");
// 获取普通表单项(获取参数)
String uname = req.getParameter("uname"); // 表单中表单元素的name属性值
System.out.println("uname: " + uname);
// 获取Part对象(Servlet将multipart/form-data的POST请求封装成Part对象)
Part part = req.getPart("myfile");
// 通过Part对象得到上传的文件名
String fileName = part.getSubmittedFileName();
System.out.println("上传文件名:" + fileName);
// 得到文件存放的路径
String filePath = req.getServletContext().getRealPath("/");
System.out.println("文件存放路径:" + filePath);
// 上传文件到指定目录
part.write(filePath + "/" + fileName);
}
}
```
而文件下载功能可以通过设置download属性来实现。以下是一个文件下载的JSP页面的示例代码:
```html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>文件下载</title>
</head>
<body>
<!-- 浏览器能够识别的资源 -->
<a href="download/hello.txt">文本文件</a>
<a href="download/pic.jpg">图片文件</a>
<!-- 浏览器不能够识别的资源 -->
<a href="download/zzz.rar">压缩文件</a>
<hr>
<a href="download/hello.txt" download>文本文件</a>
<a href="download/pic.jpg" download="test.png">图片文件</a>
<hr>
<form action="downloadServlet">
文件名:<input type="text" name="fileName" placeholder="请输入要下载的文件名">
<button>下载</button>
</form>
</body>
</html>
```
以上是文件上传和下载的实现方法,你可以根据需要进行调整和扩展。
阅读全文