服务器上传和下载文件

本文介绍了一个简单的文件下载和上传功能的实现方法。通过Spring MVC框架,利用Java Servlet API进行HTTP请求处理,实现了从服务器下载文件及向服务器上传文件的功能。文章提供了具体的代码示例,包括设置响应头信息以触发文件下载、读取HTTP请求体中的数据以及处理文件上传等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 @RequestMapping("/downLoadFile")
    public  void DownLoadFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String fileName=request.getParameter("fileName");
        response.setContentType("text/html;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        //System.out.println(fileName);
        //FileInputStream in = new FileInputStream("G:\\"+fileName);
        FileInputStream in = new FileInputStream("/"+fileName);//static目录下
        response.setHeader("content-disposition",
                "attachment;filename=" + URLEncoder.encode("fileName", "utf-8"));
        OutputStream out = response.getOutputStream();
        // 创建缓冲区
        byte buffer[] = new byte[1024];
        int len = 0;
        // 循环将输入流中的内容读取到缓冲区中
        while ((len = in.read(buffer)) > 0) {
            // 输出缓冲区内容到浏览器,实现文件下载
            out.write(buffer, 0, len);
        }
        // 关闭文件流
        in.close();
        // 关闭输出流
        out.close();
    }


    @RequestMapping(value = "/Test")
    public String Test(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("请求成功");
        System.out.println(GetInputStreamString(request));
        return "请求成功";
    }

    public static String GetInputStreamString(HttpServletRequest request) throws IOException {
        StringBuffer data = new StringBuffer();
        String line = null;
        BufferedReader reader = request.getReader();
        while ((line = reader.readLine()) != null)
            data.append(line);
        return data.toString();
    }

    @RequestMapping(value = "/shangchuan")
    public String GetFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
        ServletInputStream sis = request.getInputStream();
        String path=ClassUtils.getDefaultClassLoader().getResource("").getPath();//获取项目的绝对路径只会存到target中
        FileOutputStream fos = new FileOutputStream(path+"static/File/123.jpg");
        byte[] media = new byte[1024];
        int length = sis.read(media, 0, 1024);
        while(length  != -1)
        {
            fos.write(media, 0, length);
            length = sis.read(media, 0, 1024);

        }
        fos.close();
        sis.close();
        return "上传成功";
    }

 

转载于:https://www.cnblogs.com/CY-947205926/p/8898104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值