栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA实现从服务器下载文件,将下载文件转成文件流响应给前端

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA实现从服务器下载文件,将下载文件转成文件流响应给前端

1.刚开始的时候我不知道具体的需求,然后还走了很多弯路,甚至还把数据下载到了自己的电脑上的磁盘中,但其实后端要做的只是接收前端传回的路径,然后与服务器建立连接,然后响应前端就行

2.代码

public void downLoadFile(
        HttpServletResponse response,
        @RequestParam(name = "resultId") @ApiParam(value = "结果ID") String resultId
) throws IOException {
    SxProResult result = sxProResultService.selectResultByResultId(resultId);
    // 文件路径
    String resultValue = result.getResultValue();
    // 文件地址的全路径
    String httpUrl = filePrefix + resultValue;
    ServletOutputStream out = null;
    try {
       // 与服务器建立连接
        URL url = new URL(httpUrl);
        URLConnection conn = url.openConnection();
        InputStream inputStream = conn.getInputStream();
        try {
            //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
            response.setContentType("multipart/form-data");
        } catch (Exception e){
            e.printStackTrace();
        }
        out = response.getOutputStream();
        // 读取文件流
        int len = 0;
        byte[] buffer = new byte[1024 * 10];
        while ((len = inputStream.read(buffer)) != -1) {
            out.write(buffer, 0, len);
        }
        out.flush();
    } catch (Exception e){
        e.printStackTrace();
    }
}

3.在其中遇到的问题,最终接口写好后,与前端联调的过程中,发现前端能正常下载文件,但是后台会报一个转换器的错误,

 百度之后发现,是我Controller层的文件下载不能有返回值,当时我写的返回值是Result,后面改成void之后解决了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756669.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号