簡體   English   中英

從服務器下載Spring REST文件

[英]Spring REST file download from server

我有一個Spring REST應用程序,端點之一是下載鏈接,下載的文件是在運行時生成的。

除文件名錯誤外,其他所有方法均有效。

這是控制器的相關部分:

@RestController
@RequestMapping("/export")
public class ExportREST {

    @RequestMapping(method=RequestMethod.GET)
    public void export(HttpServletResponse response) throws Exception {

        //stuff omitted...
        writeCsvResponse(response);
    }

    private void writeCsvResponse(HttpServletResponse response) throws IOException {
        String fileName = "db.export."+dateFormat.format(new Date());
        response.setContentType( "application/octet-stream" );
        response.setHeader( "Content-Disposition:", "attachment;filename=" + "\"" + fileName + "\"" );

        //write stuff to response...

        response.setContentLength(totalLength);
        response.setBufferSize(1024);
        response.flushBuffer();
        pout.close();
    }
}

因此,我想要的是帶有生成時間戳記的文件名,但實際上文件名始終是export ,大概是從URL獲取文件名。

我錯過了什么嗎?

“ Content-Disposition:”的末尾有一個冒號。 沒有它,文件名應該被選擇。

也許這對你有幫助

  if (mimeType == null) {
        // set to binary type if MIME mapping not found
        mimeType = "application/octet-stream";
    }
    System.out.println("MIME type: " + mimeType);

    // set content attributes for the response
    response.setContentType(mimeType);

有關servlet的更多詳細信息, 參見: https : //stackoverflow.com/questions/41914092/how-change-servlet-which-download-single-file-but-can-folderfew-files-in-fold

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM