欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot如何實現(xiàn)文件下載

 更新時間:2023年11月06日 09:11:50   作者:zhangvalue  
這篇文章主要介紹了SpringBoot如何實現(xiàn)文件下載問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot文件下載

在寫java 的文件下載的時候一直拋出異常

getOutputStream() has already been called for this response

直到使用了下面的方法

 /**
     * 稿源周報excel表格下載
     * @return
     */
 
    @RequestMapping(value = "/downExcel", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String downExcel(HttpServletResponse response) throws UnsupportedEncodingException {
        LocalDate end = LocalDate.now();
        LocalDate start = end.minusDays(14);
        String filename = "稿源抓取周報-" + end.format(DateTimeFormatter.ISO_DATE) + ".xlsx";
        String filepath = "files/" + filename;
        writeExcelFile(start, end, filepath);
        // 如果文件名不為空,則進行下載
        if (filename != null) {
            File file = new File(filepath);
            // 如果文件存在,則進行下載
            if (file.exists()) {
                // 配置文件下載
                response.setHeader("content-type", "application/octet-stream");
                response.setContentType("application/octet-stream");
                // 下載文件能正常顯示中文
                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
                // 實現(xiàn)文件下載
                byte[] buffer = new byte[1024];
                FileInputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                    OutputStream os = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        os.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                    System.out.println("Download  successfully!");
                    return "successfully";
 
                } catch (Exception e) {
                    System.out.println("Download  failed!");
                    return "failed";
 
                } finally {
                    if (bis != null) {
                        try {
                            bis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
        return "";
    }

后來又出現(xiàn)了 一個問題就是后臺不拋出異常,也不出現(xiàn)下載的提示發(fā)現(xiàn)了以下問題

如果要用ajax 發(fā)送的話,則瀏覽器沒有任何反應  因為ajax返回的格式是  字符的格式 

  $.ajax({
       url:"/down/downExcel",
       type:"GET",
       dataType:"json",
       success:function(result){
}}); 

換成:

window.location.href="/down/downExcel" rel="external nofollow" ;

OK!

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Springboot集成第三方jar快速實現(xiàn)微信、支付寶等支付場景

    Springboot集成第三方jar快速實現(xiàn)微信、支付寶等支付場景

    這篇文章主要介紹了Springboot集成第三方jar快速實現(xiàn)微信、支付寶等支付場景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • iReport使用指南及常見功能示例詳解

    iReport使用指南及常見功能示例詳解

    這篇文章主要介紹了iReport使用指南及常見功能,本文以iReport 3.5.1為例,通過示例演示給大家介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • 教你使用java實現(xiàn)去除各種空格

    教你使用java實現(xiàn)去除各種空格

    本文給大家匯總介紹了5種java中去除空格的方法,分別是String.trim()、str.replace(" ", "");、replaceAll(" +","");以及自定義的remove函數(shù),非常的簡單實用,需要的小伙伴可以參考下。
    2015-03-03
  • Java 合并多個MP4視頻文件

    Java 合并多個MP4視頻文件

    這篇文章主要介紹了Java 合并多個MP4視頻文件的方法,幫助大家利用Java處理視頻,提高辦公效率,感興趣的朋友可以了解下
    2020-11-11
  • Java 泛型總結(二):泛型與數(shù)組

    Java 泛型總結(二):泛型與數(shù)組

    數(shù)組與泛型的關系還是有點復雜的,Java 中不允許直接創(chuàng)建泛型數(shù)組。本文分析了其中原因并且總結了一些創(chuàng)建泛型數(shù)組的方式。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • java中Locks的使用詳解

    java中Locks的使用詳解

    這篇文章主要介紹了java中Locks的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 利用Spring插件實現(xiàn)策略模式的案例詳解

    利用Spring插件實現(xiàn)策略模式的案例詳解

    Spring插件提供了一種更實用的插件開發(fā)方法,它提供了插件實現(xiàn)擴展核心系統(tǒng)功能的核心靈活性,但當然不提供核心OSGi功能,如動態(tài)類加載或運行時安裝和部署插件,本文就來聊下如何使用spring插件來實現(xiàn)策略模式,需要的朋友可以參考下
    2023-05-05
  • Java?Git?Commit?Message使用規(guī)范

    Java?Git?Commit?Message使用規(guī)范

    這篇文章主要介紹了Java?Git?Commit?Message使用規(guī)范,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-08-08
  • java文件的重命名與移動操作實例代碼

    java文件的重命名與移動操作實例代碼

    這篇文章主要介紹了java文件的重命名與移動操作實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • java中將一個List等分成n個list的工具方法(推薦)

    java中將一個List等分成n個list的工具方法(推薦)

    下面小編就為大家?guī)硪黄猨ava中將一個List等分成n個list的工具方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論