javaweb文件上传下载
时间: 2023-09-14 13:07:45 浏览: 43
JavaWeb 文件上传下载可以通过 Servlet 实现,以下是一个简单的示例:
文件上传:
```java
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Part filePart = req.getPart("file"); // 获取上传的文件
String fileName = filePart.getSubmittedFileName(); // 获取文件名
InputStream fileContent = filePart.getInputStream(); // 获取文件内容
// 将文件保存到本地
Files.copy(fileContent, Paths.get("/path/to/save/" + fileName));
}
}
```
文件下载:
```java
@WebServlet("/download")
public class DownloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String fileName = req.getParameter("fileName"); // 获取文件名
String filePath = "/path/to/file/" + fileName;
// 设置响应头
resp.setContentType("application/octet-stream");
resp.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// 将文件内容写入响应输出流
FileInputStream in = new FileInputStream(filePath);
OutputStream out = resp.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
in.close();
}
}
```
在 JSP 页面中,可以使用表单上传文件,并通过链接下载文件:
```jsp
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
<%
// 显示文件列表
File[] files = new File("/path/to/file/").listFiles();
for (File file : files) {
%>
<a href="download?fileName=<%= file.getName() %>"><%= file.getName() %></a><br>
<%
}
%>
```