下载AngularJS中项目目录中不存在的文件
在我的项目中,我只想实现上传和下载功能。我已经用AngularJS和Node.js完成了上传功能。但这里的问题是将文件(.pdf,所有图像格式)上传到系统中的某个地方。例如,我的项目位于D驱动器中。虽然我必须上传一个文件到C驱动器或其他驱动器在我的电脑,我已经成功地做到了。但当我尝试从Node.js读取文件位置并将路径传递给angular时,一切正常,文件在浏览器中下载。当我试图打开一个下载的文件时,它会返回一个响应-致命错误/无显示。只有当我发送一个文件流而不是一个指向对象的路径时,我才尝试使用blob 代码如下下载AngularJS中项目目录中不存在的文件,angularjs,Angularjs,在我的项目中,我只想实现上传和下载功能。我已经用AngularJS和Node.js完成了上传功能。但这里的问题是将文件(.pdf,所有图像格式)上传到系统中的某个地方。例如,我的项目位于D驱动器中。虽然我必须上传一个文件到C驱动器或其他驱动器在我的电脑,我已经成功地做到了。但当我尝试从Node.js读取文件位置并将路径传递给angular时,一切正常,文件在浏览器中下载。当我试图打开一个下载的文件时,它会返回一个响应-致命错误/无显示。只有当我发送一个文件流而不是一个指向对象的路径时,我才尝试使
var file = new Blob([data], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
其中数据是来自服务器的文件流响应 不是我的代码,但请尝试以下操作以保存BLOB:
var saveData = (function () {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
return function (data, fileName) {
var json = JSON.stringify(data),
blob = new Blob([json], {type: "octet/stream"}),
url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
};
}());
var data = { x: 42, s: "hello, world", d: new Date() },
fileName = "my-download.json";
saveData(data, fileName);
资料来源:
如果要强制下载链接文件,可以使用HTML5a
选项download
更多信息:
记住(不存在)对旧浏览器的支持
注意:您的上传过程(“将文件上传到C驱动器或我计算机中的其他驱动器”)听起来可能需要改进或重新思考