Tag: filesaver.js

从node.js发送的字节数组中的angular度下载文件

我觉得我非常接近我想要做的事情。 我在node.js中有以下api get方法,它是从SQL Server数据库中检索文件varbinary(MAX)。 它是在插入之前从base64编码的string转换而来的,因此内容types信息被从string中除去。 的node.js router.get('/getFile', (req, res) => { console.log("Calling getFile for file " + req.query.serialNumber + ".") var serialNumber = req.query.serialNumber; let request = new sql.Request(conn); request.query('SELECT FileName + \'.\' + FileExtension AS \'File\', FileType, ContentType, SerialNumber, Chart ' + 'FROM dbo.ChangeFiles ' + 'WHERE SerialNumber = ' + serialNumber) .then(function (recordset) […]

无法使用filesaver.js打开下载的文件

错误:PowerPoint在abc.pptx中发现内容有问题无法打开文件,文件可能被损坏。 客户端代码(使用filesaver.js保存文件) $http.get(url) .then(function(resp) { var file = new Blob([resp.data], {type : 'application/vnd.openxmlformats-officedocument.presentationml‌​.presentation'}); saveAs(file, "abc.pptx"); }, function(error) { return $q.reject(error.data.message); }); 服务器端代码 app.get('/..', function (req, res) { stream = fs.createReadStream(filePath); stream.pipe(res); });

如何将来自Node的传入文件stream保存到AngularJS中

在我的快递服务器上,我有一个后期请求,从亚马逊S3获取PDF文件,并将其发送回angular度。 这是我的快递服务器端点如何结束: var fileStream = s3.getObject(options).createReadStream(); fileStream.pipe(res); 在我发布的东西的angular度,并试图保存这一点 $http.post(url, data) .then(function (data, status, headers, config) { var file = new Blob([data.data], {type: 'application/pdf'}); FileSaver.saveAs(file, vm.projectName); }) 我得到一个无效的pdf文件。 我有大约300kb(比原始文件更多),我相信它不是pdf,而是一个缓冲区? 我试图实现的: – 发送请求到服务器 – 服务器从S3获取文件,将其发送回Angular Controller – Angular Controller将其保存为.png

有没有办法使用angular度文件下载任何types的文件?

我使用node.js和angular.js为我的应用程序,我试图通过浏览器使用Blob和fileSaver.js下载文件。 我已经在我的应用程序的其他部分使用这些来下载文本文件和PDF文件指定正确的types创buildBlob对象没有任何问题,但在当前部分我需要支持任何types的文件,我不知道如果它是可能的。 例如,我试图下载一个带有和没有type:image/png的图像文件,结果是一个损坏的图像 – 在文本编辑器中检查它,并将其与原始文件进行比较,结果显示许多字节已被更改。 这里是我使用的代码片段: 服务器 : fs.readFile(/* snipped file path */, function(err, data){ if(err){ /* handle error */ } else{ res.send(data); } }); 客户 : $http.get(/* endPoint URL */) .success(function(result){ var data = new Blob([result], {type: 'image/png'}); FileSaver.saveAs(data, filename); }); 几个问题: 我需要指定Blob的types吗? 如果是这样,我是否也需要在服务器上指定它(确定它是一个痛苦)? 我不能在两端跳过它吗? 什么导致图像testing导致损坏的文件? 我是否缺less一些content-type头文件?