myeclipse javaweb文件上传下载
时间: 2024-02-15 20:59:25 浏览: 95
以下是使用MyEclipse实现JavaWeb文件上传下载的步骤:
1.在MyEclipse中创建一个动态Web项目,添加一个JSP页面和一个Servlet。
2.在JSP页面中添加一个表单,用于上传文件。表单中需要包含一个type为file的input标签和一个submit按钮。
3.在Servlet中处理文件上传请求。可以使用Apache Commons FileUpload组件来解析request请求,获取上传的文件。
```java
// 引入FileUpload组件
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import java.util.*;
// 处理文件上传请求
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 创建DiskFileItemFactory对象,用于解析request请求
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓冲区大小
factory.setSizeThreshold(4096);
// 设置临时文件存储位置
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
// 创建ServletFileUpload对象,用于解析request请求
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的大小限制
upload.setFileSizeMax(1024 * 1024 * 10); // 10MB
// 设置上传文件的总大小限制
upload.setSizeMax(1024 * 1024 * 50); // 50MB
// 解析request请求,获取上传的文件
List<FileItem> items = upload.parseRequest(request);
// 遍历上传的文件
for (FileItem item : items) {
// 判断是否为文件类型
if (!item.isFormField()) {
// 获取上传文件的名称
String fileName = item.getName();
// 获取上传文件的大小
long fileSize = item.getSize();
// 获取上传文件的类型
String contentType = item.getContentType();
// 获取上传文件的字节流
InputStream fileContent = item.getInputStream();
// 处理上传文件的业务逻辑
// ...
// 返回上传结果
response.getWriter().write("文件上传成功!");
}
}
}
```
4.在Servlet中处理文件下载请求。可以使用Java IO流将文件输出到response中,实现文件下载。
```java
// 处理文件下载请求
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取文件名
String fileName = request.getParameter("fileName");
// 获取文件路径
String filePath = request.getServletContext().getRealPath("/upload/" + fileName);
// 创建文件对象
File file = new File(filePath);
// 设置response的Header
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setHeader("Content-Length", String.valueOf(file.length()));
// 创建输入流
InputStream in = new FileInputStream(file);
// 创建输出流
OutputStream out = response.getOutputStream();
// 将文件输出到response中
byte[] buffer = new byte[1024];
int len = 0;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
// 关闭输入输出流
in.close();
out.close();}
```
阅读全文