1
我試圖下載一個文件,以便用戶可以選擇打開或保存。他們單擊文件名:使用angularjs下載文件
<a href data-ng-click="getFile(file.id)">
{{file.name}}</span>
</a>
那麼這個調用的角度JS文件
$scope.getFile= function ($id) {
var getInputFilePromise = fileFactory.getInputFile($id);
getFilePromise.success(function ($data) {
var blob = new Blob([$data], {type: 'text/csv'});
//code to allow downloading file
});
}
工廠擁有下面的代碼獲取從Java控制器的byte []的方法:
getFile: function ($id) {
return $http.get('/downloadFile?id=' + $id, {responseType:'arraybuffer'});
}
正如你可以從我的getFile方法看到的,我將數據轉換爲blob,但我無法將其發送到html。我已經嘗試過在這裏發佈的衆多解決方案,但都沒有工作。
var blob = new Blob([$data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
var objectUrl = URL.createObjectURL(blob);
window.open(objectUrl);
上述代碼片段允許下載文件,但Excel無法打開它。
任何幫助將是偉大的,因爲我是新的角。我也想避免使用FileSaver.js
我也試過以下,但它不起作用。
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/csv,' + encodeURI($data);
hiddenElement.target = '_blank';
hiddenElement.download = fileName;
hiddenElement.click();
您可以使用此的