我想在视图中列出所有文件(来自目录)。当我点击其中任何一个时。然后必须下载相应的文件。 注意:我在Windows机器上工作。
我有以下代码,
$scope.files = [{"name":"aaa.txt", "path":"C:\\Documents and Settings\\Administrator\\Desktop\\MyFolder\\aaa.txt"},
{"name":"bbb.PNG", "path":"C:\\Documents and Settings\\Administrator\\Desktop\\MyFolder\\bbb.PNG"},
{"name":"ccc.xlsx", "path":"C:\\Documents and Settings\\Administrator\\Desktop\\MyFolder\\ccc.xlsx"}];
<div ng-repeat="file in files">
<a target="_self" download="{{file.name}}" href="{{file.path}}">{{file.name}} </a>
</div>
但它没有按预期工作。
如果我使用href="{{file.path}}"
或ng-href="{{file.path}}"
,unsafe:
会自动附加href网址。
我的角度版本是1.2.7,所以我尝试在我的控制器中添加以下代码
angular.module('myModule', [], function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
});
href。
中仍存在unsafe:
如果删除unsafe:
因为我尝试使用硬编码路径,例如:href or ng-href="C:\\Documents and Settings\\Administrator\\Desktop\\MyFolder\\bbb.PNG"
但无法下载文件。
注意:无论是\\
还是/
都不是问题。两者都不起作用
我的代码出了什么问题。怎么能实现这个目标?
答案 0 :(得分:0)
尝试使用以下代码
<a download="content.txt" ng-href="{{ url }}">download</a>
<script>
var content = 'file content';
var blob = new Blob([ content ], { type : 'text/plain' });
$scope.url = (window.URL || window.webkitURL).createObjectURL( blob );
</script>