在jquery中,在下载之前检查要下载的文件是否为空

时间:2018-03-23 10:34:45

标签: javascript jquery html5

我有一个使用jquery下载的文件,我是通过window.location.href实现的。但我的挑战是我需要找出我打算下载的文件是否为空。如果它为空,我需要显示一个显示错误消息的弹出窗口,而不是下载该空文件。但是我不知道在使用jquery下载之前如何捕获文件是否为空。

我在网上搜索,但找不到答案。请帮我解决这个问题。

1 个答案:

答案 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...');
    }
  }
});

话虽这么说,预防是解决这个问题的更好办法。您应该修改逻辑,以便甚至不向用户显示无效文件。允许用户选择甚至选择他们不能拥有的东西只会激怒他们。