码迷,mamicode.com
首页 > 其他好文 > 详细

前后端分离文件下载接口定义

时间:2020-09-04 17:35:56      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:方式   处理   write   connect   sdn   cep   @param   csdn   二进制   

前言

前后端分离后, 前端下载文件, 定义接口时有点疑惑, 前端下载文件都有哪种方式?怎么去定义接口?

正文

结合以前的经验, 下载文件/展示图片前端可以直接通过文件url去展示

如果通过接口传输数据需要流文件的形式呢?流指的是二进制流?具体到java语言中传输的数据类型是byteArray?

接口定义

定义数据传输类型为byte[]

以下是实现, 根据文件所在服务器的url, 获取byte[]

/**
     * 根据url获取文件流 byte[]
     *
     * @param url
     * @return byte[]
     * @throws IOException
     */
    public byte[] getFile(String url) throws IOException {
        URL urlConet = new URL(url);
        HttpURLConnection con = (HttpURLConnection) urlConet.openConnection();
        con.setRequestMethod("GET");
        con.setConnectTimeout(4 * 1000);
        InputStream inputStream = con.getInputStream();
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[2048];
        int len = 0;
        while ((len = inputStream.read(buffer)) != -1) {
            byteArrayOutputStream.write(buffer, 0, len);
        }
        inputStream.close();
        byte[] data = byteArrayOutputStream.toByteArray();
        byteArrayOutputStream.close();
        return data;
    }

将data返回给前端进行处理

前端可以根据二进制流转blob对象或其他方式处理

感谢

前端下载二进制流文件

接口返回二进制文件流,前端通过blob对象实现下载

前端多种方式实现文件下载

 

前后端分离文件下载接口定义

标签:方式   处理   write   connect   sdn   cep   @param   csdn   二进制   

原文地址:https://www.cnblogs.com/yadongliang/p/13570194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!