我正在尝试从后端Node.js / Express服务器中提取文件,然后在角度前端显示它们。我尝试了不同的方法,但仍然卡住,前端的数据显示为字节串,但显示为Base64字符串没有帮助(它只显示了Base64字符串)。
我认为这是因为我没有正确设置窗口属性来显示文件。
我的快递代码:
router.get('/api/v1/getupload/:filename', function(req,res){
res.sendFile(__dirname + '/uploads/' + req.params.filename);
});
我的角色服务代码:
(managedatafactory将调用的结果返回给Express)
//get uploaded file
$scope.getUploadFile = function(file) {
// data is link to pdf
managedataFactory.getUploadFile(file, {responseType:'arraybuffer'}).success(function(f){
var blob = new Blob([f]);
var fileURL = $window.URL.createObjectURL(blob);
$scope.content = $sce.trustAsResourceUrl(fileURL);
var w = $window;
w.open($scope.content);
});
}
HTML包含ng-click
与正确文件名的调用。
这是对后端调用的结果(新打开的窗口显示几乎相同):
`�PNG
���
IHDR���������� �����sRGB@�}���� pHYs�������+���tEXtSoftware�Microsoft Office�5q����IDATx����T������>���J�@HB�����Bp���� etcetcetc`
结果可以是pdf或图像,所以我必须同时满足这两个要求。任何帮助都会非常感激,因为我现在已经坚持这个问题一段时间了,我开始失去一些头发。
答案 0 :(得分:1)
最后,我用一个简单的get替换了角柱,它解决了所有问题。