@MultipartConfig
public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response)"> @MultipartConfig
public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response)">
117.info
人生若只如初见

Java WebAPI如何实现文件上传下载

Java WebAPI可以通过使用Servlet来实现文件上传下载。以下是一个简单的示例:

  1. 文件上传
@WebServlet("/upload")
@MultipartConfig
public class FileUploadServlet 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();
        
        // 保存文件到指定目录
        File file = new File("C:/upload/" + fileName);
        try (OutputStream out = new FileOutputStream(file)) {
            IOUtils.copy(fileContent, out);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        response.getWriter().println("文件上传成功");
    }
}
  1. 文件下载
@WebServlet("/download")
public class FileDownloadServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String fileName = "example.txt";
        File file = new File("C:/upload/" + fileName);
        
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        
        try (InputStream in = new FileInputStream(file);
             OutputStream out = response.getOutputStream()) {
            IOUtils.copy(in, out);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

在以上示例中,通过MultipartConfig注解标记文件上传Servlet,并使用Part对象获取上传的文件,然后将文件保存到指定目录。在文件下载Servlet中,设置响应的Content-Type和Content-Disposition头,然后将文件内容写入到输出流中实现文件下载。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fecfdAzsIAgRUDFE.html

推荐文章

  • Java控制台打印支持颜色吗

    是的,Java控制台可以打印支持颜色的文本。可以使用ANSI转义码来控制颜色输出,例如:
    public class Main { public static void main(String[] args) { Sys...

  • Java控制台打印怎么实现

    在Java中,可以通过使用System.out.println()方法来在控制台打印输出信息。例如:
    public class Main { public static void main(String[] args) { System....

  • Java控制台打印如何调整输出格式

    在Java中,可以使用不同的格式化方法来调整控制台输出的格式。以下是一些常用的方法: 使用System.out.println()方法打印字符串: System.out.println("Hello, W...

  • Java控制台打印能否实时刷新

    Java控制台本身是不支持实时刷新的,它是基于文本的输出,每次输出都会追加到已有的输出后面。如果需要实现实时刷新,可以考虑使用类似于System.out.print("\r")...

  • Java WebAPI支持WebSocket吗

    是的,Java WebAPI支持WebSocket。Java有很多库和框架可以用来实现WebSocket功能,比如Java EE的WebSocket API和Spring框架的WebSocket支持。通过这些工具,开发...

  • 如何在Java WebAPI中使用HTTPS

    要在Java WebAPI中使用HTTPS,可以按照以下步骤操作: 获取SSL证书:首先需要获取SSL证书,可以通过自签名证书、CA签名证书或者使用免费的证书颁发机构(如Let’...

  • Java WebAPI中的错误处理最佳实践

    在Java WebAPI中,错误处理是非常重要的一部分,可以通过以下最佳实践来有效地处理错误: 使用合适的HTTP状态码:根据错误的类型和原因,选择合适的HTTP状态码返...

  • Java WebAPI性能优化的策略有哪些

    Java WebAPI性能优化的策略包括以下几个方面: 缓存:对于一些频繁访问的数据,可以使用缓存技术将数据缓存起来,减少数据库或其他资源的访问次数,提高响应速度...