相关疑难解决方法(0)

使用Express从NodeJS Server下载文件

如何将我服务器中的文件下载到访问nodeJS服务器中页面的计算机?

我正在使用ExpressJS而且我一直在尝试这个:

app.get('/download', function(req, res){

  var file = fs.readFileSync(__dirname + '/upload-folder/dramaticpenguin.MOV', 'binary');

  res.setHeader('Content-Length', file.length);
  res.write(file, 'binary');
  res.end();
});
Run Code Online (Sandbox Code Playgroud)

但我无法获取文件名和文件类型(或扩展名).任何人都可以帮助我吗?

javascript file download node.js express

283
推荐指数
6
解决办法
33万
查看次数

如何使用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万
查看次数

如何从HttpClient下载文件

我需要从我的后端下载一个excel,它返回一个文件.

当我提出请求时,我收到错误:

TypeError:您提供了"undefined",其中包含了一个流.您可以提供Observable,Promise,Array或Iterable.

我的代码是:

this.http.get(`${environment.apiUrl}/...`)
      .subscribe(response => this.downloadFile(response, "application/ms-excel"));
Run Code Online (Sandbox Code Playgroud)

我试过get和map(...)但是没有用.

细节:角度5.2

引用:

import { HttpClient } from '@angular/common/http';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/finally';
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/catch';
Run Code Online (Sandbox Code Playgroud)

内容 - 响应类型:

Content-Type: application/ms-excel
Run Code Online (Sandbox Code Playgroud)

怎么了?

blob file typescript angular angular-httpclient

16
推荐指数
5
解决办法
5万
查看次数

从http post请求下载文件 - Angular 6

使用res.send(数据)而不是res.json(数据)更新

使用Angular 6和NodeJS我正在做一个Web应用程序.我正在尝试从http发布请求下载文件.

我像这样向服务器发送请求.从我的组件我调用服务中的函数.在组件中,我怀疑有服务器的答案,当我有它时,我创建一个新的Blob与响应和我使用FileSaver下载PDF.

现在,当我从服务器收到答案时,客户端将其视为错误,而状态为200.错误消息为: "解析http:// localhost:3000/api/experiment/regression期间的Http失败" 请参阅下面的截图.

Component.ts

this.api.postML(this.regression).subscribe(
    res => {
      console.log(res);
      let pdf = new Blob(res.data, { type: "application/pdf" });
      let filename = "test.pdf";
      FileSaver.saveAs(pdf, filename);
    },
    err => {
      alert("Error to perform the regression");
      console.log(err);
    }
  );
Run Code Online (Sandbox Code Playgroud)

API.Service.ts

  public postML(data): Observable<any> {
    // Create url
    let url = `${baseUrl}${"experiment/regression"}`;

    let options = {
      headers: { "Content-Type": "application/json", Accept: "application/pdf" }
    };
    // Call the http POST
    return this.http
      .post(url, data, options)
      .pipe(catchError(this.handleError));
  }
Run Code Online (Sandbox Code Playgroud)

然后从服务器,它执行一些代码与发送的数据,并生成PDF文件.然后,我想将pdf作为对客户的回复发送.我试过这样的: …

javascript node.js typescript mean-stack angular

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