我正在使用window.open(downloadUrl, '_self')
从服务器下载tar.gz文件。我想在下载成功(通过使用文件保存对话框中的保存按钮)或用户取消下载(通过使用文件保存对话框中的取消按钮)后,从服务器删除相同的文件。
是否有任何回调机制可以在文件成功写入客户端PC或客户端取消下载后立即获取通知?
答案 0 :(得分:1)
问题是浏览器一旦启动就处理下载,并且您没有成功下载该浏览器。你可能会考虑像jQuery这样下载文件。也许类似以下内容。这是working jsFiddle。
注意:这被认为是实验性技术,并且不支持所有浏览器。
var loc = 'https://ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.js';
var url = '';
$('#output > a').on('click', function() {
URL.revokeObjectURL(url);
$('#output').empty();
console.log('Revoked URL.');
});
$('#download').click(function () {
$.get(loc, function (data) {
var data = [data];
var blob = new Blob(data, {
type: 'application/javascript'
});
url = URL.createObjectURL(blob);
$('#output').append('<a href="' + url + '" download>Save it!</a>');
})
.fail(function () {
// delete the file - probably a $.ajax
//$.ajax({
// url: 'url',
// type: 'DELETE'
//});
});
});