文件未在react中下载,节点js

时间:2017-11-14 05:08:10

标签: node.js ajax reactjs

我想在我的下载文件夹中下载文件。该文件位于uploads文件夹中,两个文件夹都在同一目录中。文件名是BasicUserFile-id.jpg

///第二次尝试:这次我试图通过硬编码文件名来获取文件,但它也无法正常工作,而是下载空白文件。

app.js

  Filedownload(e) {

    e.preventDefault();

    var id = this.props.params.id;

    console.log(id);

    $.ajax({
      type: 'GET',
      url: '/download/' + id,
      success: function (data, textStatus, request) {
        window.open('./downloads/ ', '_self');
      }

    });

  }


   <button type="button" value="Download File" onClick={this.Filedownload} 
   className="btn btn-success btn-lg">Download file</button> 

//// server.js

app.get('/download/:id', function(req, res){
  var basic_id = req.params.id 
  var file = __dirname + '/uploads/BasicUserFile-'+ basic_id+ ".jpg";
  res.download(file); 
});

///第二次尝试。

 Filedownload(e) {

    e.preventDefault();

    $.ajax({
      type: 'GET',
      url: '/download/' ,
      success : function(data)

      {

        fileDownload(data, 'filename.jpg');
        console.log("file downloaded")


      }


    });

  }

///服务器

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

  var file = __dirname + '/uploads/BasicUserFile-5a093a24870eb12148262248.jpg';
  res.download(file); 
});

1 个答案:

答案 0 :(得分:1)

您在客户端上的呼叫是用于GET,但您的服务器定义了POST。为了符合标准,请将服务器更改为接受GET请求,如下所示:

synchronize()

此外,在您发布的内容中,客户是否正在构建正确的网址,并不清楚,因此请务必仔细检查。