【问题标题】:Why revokeObjectURL doesnt show me the filesize on IE 11为什么 revokeObjectURL 不显示 IE 11 上的文件大小
【发布时间】:2018-09-24 13:43:05
【问题描述】:
var fileInput   = document.querySelector('#file');
var preview     = document.getElementById('preview');

fileInput.addEventListener('change', function(e) {
var var_error = 0;

$('.contest_upload_preview').show();
$('.contest_upload_error').hide();

preview.onload = function() {
    var pic_width   = this.naturalWidth; 
    var pic_height  = this.naturalHeight;
    var pic_size    = $('#file')[0].files[0].size;

 //   alert("FS: "+pic_size);

    if(pic_size > 15728640) {
        //larger than 15MB (15728640). 
        var_error = 1;
        var_upload_pic = 1;
        preview.setAttribute('src', '');
    } else {
        //Dimension-check       
        if(pic_width < 720) {
            var_error = 1;
            var_upload_pic = 1;
            preview.setAttribute('src', '');
        }
        if(pic_height < 720) {
            var_error = 1;
            var_upload_pic = 1;
            preview.setAttribute('src', '');
        }
    }

    window.URL.revokeObjectURL(this.src);
};

if(var_error == 0) {
    console.log("geladen");
    var url = URL.createObjectURL(e.target.files[0]);
    preview.setAttribute('src', url);
    var_upload_pic = 0;
    }

}, false);

除了在 IE 11 中,此脚本工作正常。我收到此错误: DOM7001:Ungültiges 参数“url”。 Fehler beim Sperren der folgenden Blob-URL

如果我用谷歌搜索“window.URL.revokeObjectURL IE11”,它应该可以工作,知道为什么不可以吗?

谢谢

【问题讨论】:

  • 你不能把错误翻译成英文吗?并非我们所有人都能说流利的德语......
  • 当然,我尝试:DOM7001:无效参数“url”。关闭以下 Blob-URL 时出错

标签: jquery internet-explorer-11 revokeobjecturl


【解决方案1】:

您可能只想防止空的this.src,因为您是在函数中设置它(通过setAttribute):

if(this.src) window.URL.revokeObjectUrl(this.src);

【讨论】:

    【解决方案2】:

    Internet Explorer 不提供在上传前验证文件大小的标准方法。

    有关file api 的更多信息,请参阅here

    您仍然可以计算出文件大小,但是很麻烦,因为您需要更改用户的浏览器以便在您的页面上启用 activex。这是相关代码。

    function getSize()
    {
        var myFSO = new ActiveXObject("Scripting.FileSystemObject");
        var filepath = document.upload.file.value;
        var thefile = myFSO.getFile(filepath);
        var size = thefile.size;
        alert(size + " bytes");
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 2021-08-24
      • 2013-01-07
      • 1970-01-01
      • 2016-07-19
      • 2017-11-02
      • 2022-09-12
      • 2011-01-27
      • 1970-01-01
      相关资源
      最近更新 更多