我想在我的下载文件夹中下载文件。该文件位于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);
});
答案 0 :(得分:1)
您在客户端上的呼叫是用于GET,但您的服务器定义了POST。为了符合标准,请将服务器更改为接受GET请求,如下所示:
synchronize()
此外,在您发布的内容中,客户是否正在构建正确的网址,并不清楚,因此请务必仔细检查。