我有一个使用jquery下载的文件,我是通过window.location.href
实现的。但我的挑战是我需要找出我打算下载的文件是否为空。如果它为空,我需要显示一个显示错误消息的弹出窗口,而不是下载该空文件。但是我不知道在使用jquery下载之前如何捕获文件是否为空。
我在网上搜索,但找不到答案。请帮我解决这个问题。
答案 0 :(得分:2)
要实现此目的,您可以向URL发送HEAD请求以获取响应的标头。然后,您可以检查Content-Length
值,如下所示:
$.ajax('/yourfile.foo', {
type: 'HEAD',
success: function(data, status, xhr) {
var size = parseInt(xhr.getResponseHeader('Content-Length'), 10) || 0;
if (size != 0) {
window.location.assign('/yourfile.foo');
} else {
console.log('invalid file, show an error here...');
}
}
});
话虽这么说,预防是解决这个问题的更好办法。您应该修改逻辑,以便甚至不向用户显示无效文件。允许用户选择甚至选择他们不能拥有的东西只会激怒他们。