Javascript 如何检查IE8 html4中的文件大小

Javascript 如何检查IE8 html4中的文件大小,javascript,jquery,css,internet-explorer-8,Javascript,Jquery,Css,Internet Explorer 8,我使用FileReader检查输入文件的大小 但是我可爱的客户想要IE8,所以我需要一种方法来检查这里的文件大小 IE8不支持FileReader和其他东西 这就是我为html5所做的 输入 html4和IE8有什么好的解决方案吗???我知道我来晚了,但我可以回答这个问题 这里有三个选项: 根据用户浏览器,使用ActiveX检查文件大小 设置,这可能不起作用,或者可能会提示他们允许 要运行的ActiveX对象 检查服务器端的文件大小,然后 如果文件太大,请处理它 限制请求大小,以便在文件太大时发

我使用FileReader检查输入文件的大小

但是我可爱的客户想要IE8,所以我需要一种方法来检查这里的文件大小

IE8不支持FileReader和其他东西

这就是我为html5所做的

输入


html4和IE8有什么好的解决方案吗???

我知道我来晚了,但我可以回答这个问题

这里有三个选项:

根据用户浏览器,使用ActiveX检查文件大小 设置,这可能不起作用,或者可能会提示他们允许 要运行的ActiveX对象 检查服务器端的文件大小,然后 如果文件太大,请处理它 限制请求大小,以便在文件太大时发生错误。您将再次需要处理此错误 解决方案1这将处理兼容HTML5的浏览器和旧浏览器:

// Get the file size
var size;
var maxSize = 200;

if (window.FileReader && window.File && window.FileList && window.Blob) {
    // HTML5 File API Supported
    size = $('#user_profile_photo')[0].files[0].size;
}
else {
    // Need to use ActiveX to read the file size
    var myFSO = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = $('#user_profile_photo').val();
    var thefile = myFSO.getFile(filepath);
    size = thefile.size;
}

if (size > (maxSize * 1024)) {
    alert('The selected file is bigger than the maximum allowed file size.\r\n\r\nSelected file size: ' + Math.round((size / 1024) * 100) / 100 + 'KB\r\nMax allowed file size: ' + maxSize + 'KB');
    return false;
}
解决方案2:这取决于您的服务器端代码语言是什么,但它只是围绕检查HttpPostedFileBase的大小或提供的字节数组的长度,然后返回页面并向用户显示消息

解决方案3-假设您使用的是asp.net,则将以下内容添加到web.config:

<system.web>
  <httpRuntime maxRequestLength="10240" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="10485760" />
    </requestFiltering>
  </security>
</system.webServer>
然后,您将需要进行一些错误处理以再次发现此错误,这取决于您的服务器端技术,它可能会有所不同


希望这对某人有所帮助。我想3年后,OP不会还在这上面

我知道我来晚了,但我能回答这个问题

这里有三个选项:

根据用户浏览器,使用ActiveX检查文件大小 设置,这可能不起作用,或者可能会提示他们允许 要运行的ActiveX对象 检查服务器端的文件大小,然后 如果文件太大,请处理它 限制请求大小,以便在文件太大时发生错误。您将再次需要处理此错误 解决方案1这将处理兼容HTML5的浏览器和旧浏览器:

// Get the file size
var size;
var maxSize = 200;

if (window.FileReader && window.File && window.FileList && window.Blob) {
    // HTML5 File API Supported
    size = $('#user_profile_photo')[0].files[0].size;
}
else {
    // Need to use ActiveX to read the file size
    var myFSO = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = $('#user_profile_photo').val();
    var thefile = myFSO.getFile(filepath);
    size = thefile.size;
}

if (size > (maxSize * 1024)) {
    alert('The selected file is bigger than the maximum allowed file size.\r\n\r\nSelected file size: ' + Math.round((size / 1024) * 100) / 100 + 'KB\r\nMax allowed file size: ' + maxSize + 'KB');
    return false;
}
解决方案2:这取决于您的服务器端代码语言是什么,但它只是围绕检查HttpPostedFileBase的大小或提供的字节数组的长度,然后返回页面并向用户显示消息

解决方案3-假设您使用的是asp.net,则将以下内容添加到web.config:

<system.web>
  <httpRuntime maxRequestLength="10240" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="10485760" />
    </requestFiltering>
  </security>
</system.webServer>
然后,您将需要进行一些错误处理以再次发现此错误,这取决于您的服务器端技术,它可能会有所不同


希望这对某人有所帮助。我想3年后,OP不会还在这上面

在不将其发送到服务器的情况下,您只能使用在后台使用flash或silverlight的回退。正如您在标签中提到的jQuery,您可以检查一下,我还没有测试它,所以我不能保证它能正常工作。如果不将它发送到服务器,您只能使用在后台使用flash或silverlight的回退。当您在标签中提到jQuery时,您可以检查一下,我还没有测试过它,所以我不能保证它能正常工作。