javaweb文件上传下载
时间: 2023-09-13 14:10:32 浏览: 85
JavaWeb 文件上传下载需要通过 Servlet 和 JSP 实现,具体操作如下:
文件上传:
1. 在 JSP 页面中添加表单,设置 enctype="multipart/form-data",method="post",使用 input 标签的 type="file" 来选择上传的文件。
2. 在 Servlet 中获取上传的文件流,通过 IO 流将文件写入磁盘或数据库等存储介质。
文件下载:
1. 在 JSP 页面中添加链接或按钮,通过 href 或 form 的 action 属性指定 Servlet 的 URL,可以在 URL 中传递参数以指定下载的文件。
2. 在 Servlet 中获取文件流,通过 IO 流将文件写入 HttpServletResponse 对象的 OutputStream 中,设置 Content-Disposition 头部信息以指定文件名和下载方式。
示例代码如下:
文件上传的 JSP 页面:
```html
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
```
文件上传的 Servlet:
```java
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
InputStream fileContent = filePart.getInputStream();
// 将文件写入磁盘或数据库等存储介质
}
}
```
文件下载的 JSP 页面:
```html
<a href="download?fileName=test.txt">下载测试文件</a>
```
文件下载的 Servlet:
```java
@WebServlet("/download")
public class DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = request.getParameter("fileName");
InputStream fileContent = new FileInputStream("path/to/" + fileName);
response.setContentType("application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fileContent.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.flush();
out.close();
fileContent.close();
}
}
```
阅读全文