前后端分離文件下載接口定義


前言

前后端分離后, 前端下載文件, 定義接口時有點疑惑, 前端下載文件都有哪種方式?怎么去定義接口?

正文

結合以前的經驗, 下載文件/展示圖片前端可以直接通過文件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對象實現下載

前端多種方式實現文件下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM