相关疑难解决方法(0)

如何使用Angular2下载文件

我有一个WebApi/MVC应用程序,我正在开发一个angular2客户端(以取代MVC).我在理解Angular如何保存文件时遇到了一些麻烦.

该请求是确定的(正常工作与MVC,我们可以登录接收到的数据),但我无法弄清楚如何保存下载的数据(我主要是遵循同样的逻辑这篇文章).我确信这是非常简单的,但到目前为止,我根本不理解它.

组件功能的代码如下.我尝试过不同的方案,则斑的方法应该是,据我了解的路要走,但没有作用createObjectURLURL.我甚至找不到URL窗口中的定义,但显然它存在.如果我使用该FileSaver.js模块,我会得到同样的错误.所以我猜这是最近发生的变化或者尚未实施.如何在A2中触发文件保存?

downloadfile(type: string){

    let thefile = {};
    this.pservice.downloadfile(this.rundata.name, type)
        .subscribe(data => thefile = new Blob([data], { type: "application/octet-stream" }), //console.log(data),
                    error => console.log("Error downloading the file."),
                    () => console.log('Completed file download.'));

    let url = window.URL.createObjectURL(thefile);
    window.open(url);
}
Run Code Online (Sandbox Code Playgroud)

为了完整起见,获取数据的服务如下,但它唯一做的是发出请求并传递数据而不进行映射(如果成功):

downloadfile(runname: string, type: string){
   return this.authHttp.get( this.files_api + this.title +"/"+ runname + "/?file="+ type)
            .catch(this.logAndPassOn);
}
Run Code Online (Sandbox Code Playgroud)

download fileapi typescript angular

151
推荐指数
17
解决办法
33万
查看次数

从角度js的web api下载csv文件

我的API控制器正在返回一个csv文件,如下所示:

    [HttpPost]
    public HttpResponseMessage GenerateCSV(FieldParameters fieldParams)
    {
        var output = new byte[] { };
        if (fieldParams!= null)
        {
            using (var stream = new MemoryStream())
            {
                this.SerializeSetting(fieldParams, stream);
                stream.Flush();
                output = stream.ToArray();
            }
        }
        var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(output) };
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "File.csv"
        };
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我发送和接收csv文件的angularjs如下所示:

$scope.save = function () {
            var csvInput= extractDetails();

            // File is an angular resource. We call its save method …
Run Code Online (Sandbox Code Playgroud)

javascript csv httpresponse asp.net-web-api angularjs

48
推荐指数
2
解决办法
10万
查看次数

将 JSON 数组下载到文件

对于以下情况,推荐的方法是什么:

应通过按钮下载实体数组。该按钮被调用Download transactions并且应该准确地执行该操作,而不会强迫用户“右键单击并‘将网站另存为...’”。

我有一个实体Transaction和一个包含它的数组。

实体:

export class Transaction {
  title: string;
  category: string;
  period: string;
  value: string;
}
Run Code Online (Sandbox Code Playgroud)

这是我最后一次尝试将此数组下载为文件:

  exportJson(): void {
    console.log(this.transactions)
    const c = JSON.stringify(this.transactions);
    const file = new Blob([c], {type: 'text/json'});
    const fileURL = URL.createObjectURL(file);
    location.href = fileURL;
  }
Run Code Online (Sandbox Code Playgroud)

这将在当前窗口中加载包含结果的选项卡,但作为纯文本而不是可下载文件。

我知道关于这个主题有很多问题,但我发现没有一个对我有用。任何帮助表示赞赏!:)

download angular-routing angular

3
推荐指数
1
解决办法
3365
查看次数