servlet实现文件上传下载
要实现文件上传和下载的功能,可以使用Servlet来实现。以下是一个简单的示例:
文件上传:
- 创建一个用于文件上传的Servlet,继承自javax.servlet.http.HttpServlet类。
- 在doPost方法中,获取文件上传的请求参数,包括文件名和文件内容。
- 创建一个文件输出流,将文件内容写入到服务器磁盘上的指定位置。
- 返回上传成功的响应信息。
文件下载:
- 创建一个用于文件下载的Servlet,继承自javax.servlet.http.HttpServlet类。
- 在doGet方法中,获取文件下载的请求参数,包括文件名和文件路径。
- 创建一个文件输入流,读取服务器磁盘上指定位置的文件内容。
- 设置响应头信息,使得浏览器能够识别文件类型并进行下载。
- 创建一个ServletOutputStream,将文件内容写入到响应流中,实现文件下载。
示例代码如下:
文件上传的Servlet:
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils;
public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取文件名 String fileName = request.getParameter("fileName"); // 获取文件内容 InputStream fileContent = request.getInputStream(); // 创建文件输出流,将文件内容写入到服务器磁盘上的指定位置 OutputStream outputStream = new FileOutputStream("C:/uploads/" + fileName); IOUtils.copy(fileContent, outputStream); // 关闭流 outputStream.close(); fileContent.close(); // 返回上传成功的响应信息 response.getWriter().write("文件上传成功"); } }
文件下载的Servlet:
import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils;
public class FileDownloadServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取文件名和文件路径 String fileName = request.getParameter("fileName"); String filePath = "C:/uploads/" + fileName; // 创建一个文件输入流,读取服务器磁盘上指定位置的文件内容 FileInputStream fileInputStream = new FileInputStream(filePath); // 设置响应头信息,使得浏览器能够识别文件类型并进行下载 response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename="" + fileName + """); // 创建一个ServletOutputStream,将文件内容写入到响应流中,实现文件下载 IOUtils.copy(fileInputStream, response.getOutputStream()); // 关闭流 fileInputStream.close(); } }
以上示例中,文件上传的Servlet将文件内容写入到服务器磁盘上的指定位置,文件下载的Servlet将服务器磁盘上的指定文件内容写入到响应流中,实现文件下载
原文地址: https://www.cveoy.top/t/topic/h4dp 著作权归作者所有。请勿转载和采集!