如何在 MeanJS 应用程序中实现文件下载
How to implement a file download in MeanJS application
我是一名移动应用程序开发人员,不熟悉网络应用程序。我正在尝试使用 MeanJS 堆栈在 Web 应用程序中实现上传和下载文件。我使用 multer 插件将文件上传到服务器。经过大量谷歌搜索后,我成功地使用了 Multer,它将文件上传并保存到上传目录。
现在我正在尝试实现相同的下载,但我没有这样做的想法。我遵循了两种方法:
<a target="_self" href="/uploads/{{eachDocument.modifiedFileName}}" download="{{eachDocument.fileName}}">{{eachDocument.fileName}}</a>
- 已在 express server controller 中使用路由,如 http://expressjs.com/api.html#res.download
使用方法 #1 应用程序永远不会下载错误 "Not a file" 的文件,因为上传不是 public 目录。
使用方法#2,我能够获取原始文件内容,但不确定如何保存文件。
谁能告诉我如何实现使用 multer 上传的保存在上传目录中的文件下载。
谢谢
@Sridhar Chidurala,请找到我的服务器和视图控制器代码:
我正在为服务器控制器使用以下代码:
var file = __dirname + "/../../" + results.filePath;
res.download(file, results.filename, function (err) {
if (err) {
} else {
}
});
在视图控制器上,我发布了一些数据并根据这些数据将文件数据获取到视图。:
$http.post(requestString, reqObject).
success(function (response) {
// **I get the file data here**
console.log("success response : " + JSON.stringify(response));
}).error(function (response) {
console.log("error response : " + JSON.stringify(response));
});
我是一名移动应用程序开发人员,不熟悉网络应用程序。我正在尝试使用 MeanJS 堆栈在 Web 应用程序中实现上传和下载文件。我使用 multer 插件将文件上传到服务器。经过大量谷歌搜索后,我成功地使用了 Multer,它将文件上传并保存到上传目录。 现在我正在尝试实现相同的下载,但我没有这样做的想法。我遵循了两种方法:
<a target="_self" href="/uploads/{{eachDocument.modifiedFileName}}" download="{{eachDocument.fileName}}">{{eachDocument.fileName}}</a>
- 已在 express server controller 中使用路由,如 http://expressjs.com/api.html#res.download
使用方法 #1 应用程序永远不会下载错误 "Not a file" 的文件,因为上传不是 public 目录。
使用方法#2,我能够获取原始文件内容,但不确定如何保存文件。
谁能告诉我如何实现使用 multer 上传的保存在上传目录中的文件下载。
谢谢
@Sridhar Chidurala,请找到我的服务器和视图控制器代码:
我正在为服务器控制器使用以下代码:
var file = __dirname + "/../../" + results.filePath;
res.download(file, results.filename, function (err) {
if (err) {
} else {
}
});
在视图控制器上,我发布了一些数据并根据这些数据将文件数据获取到视图。:
$http.post(requestString, reqObject).
success(function (response) {
// **I get the file data here**
console.log("success response : " + JSON.stringify(response));
}).error(function (response) {
console.log("error response : " + JSON.stringify(response));
});