【问题标题】:Download file from server with angular [closed]使用角度从服务器下载文件[关闭]
【发布时间】:2016-03-29 04:18:55
【问题描述】:

我想通过 REST 从服务器下载文件。我想将一些参数传递给我的 JAVA 程序。我发现 FileSaver.js 库很好用,但在 Safari 8 中不行。如何在 Safari 中下载文件?像 angular http get 这样的东西只能在 Google Chrome 中使用,我不知道如何将参数传递给 http get。我将 JAVA 与 Spring MVC 一起使用

【问题讨论】:

    标签: javascript java angularjs spring model-view-controller


    【解决方案1】:

    在后端,我们像这样提供文件:

    @RequestMapping(value = "/fileService/temp/{temporalLink}", method = RequestMethod.GET)
    public ResponseEntity<byte[]> getFileByTemporalLink(@PathVariable @NotNull String temporalLink) {
    
        byte[] fileContent; // get the file content somehow
        String fileName; // and file name
        String mediaType; // and media type
    
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType(mediaType));
        headers.setContentDispositionFormData("attachment", fileName);
        return new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
    }
    

    在前端,我们这样要求它:

    在控制器内部:

     $scope.exportProductToPdf = function (someParams) {    
            getFileDownloadLink(someParams).then(function (response) {
                    $window.location.href = '/fileService/temp/' + response;
                });
            };
    

    // 代码中的某处

    var getFileDownloadLink = function(someParams) { 
    
         //we do some promise work here to determine what file is being asked
         // but basically we resolve the filename. 
    
        return $q(function(resolve, reject) {
            //some work here...
            resolve("filename.png");
    
        });
    

    }

    【讨论】:

    • fileDownloadLink 函数长什么样?
    猜你喜欢
    • 2019-12-15
    • 2012-03-14
    • 1970-01-01
    • 2013-03-21
    • 2011-03-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多