Internet Explorer 各版本文件上传和下载限制

在过去的几年中,我们对WinINET的文件上传和下载限制有一些疑问。我在下表中总结了这些限制:

文件上传和下载限制

 

上传(总大小)

下载(每个文件)

Internet Explorer 6

2GB 2GB(4GB用于块传输或连接关闭传输)

Internet Explorer 7

2GB 4GB

Internet Explorer 8

2GB 17,592 GB

Internet Explorer 9至11

4GB 17,592 GB

 

  • 在Internet Explorer 8中,我们将可以从4GB下载的最大文件大小提高到了17TB,这是NTFS文件系统中可以存储最大文件大小。实际上,大多数NTFS卷限制为2TB,并且您当然几乎肯定会在达到该标记之前用完磁盘空间(或下载配额)。
  • 在Internet Explorer 9中,我们修复了文件上传代码中的整数环绕错误。在修复之前,在2gb和4gb之间上传的文件会在Content-Length标头中发送一个负值。

大文件上传

您可能会注意到,即使IE11也只能上传4GB的内容,但这并不是一个大问题,因为网站永远都不要尝试在现代浏览器中直接上传较大的文件(例如> 50mb)。

相反,应利用IE10 +(和所有其他主要浏览器)支持的HTML5  FileAPI,将文件切成碎片,然后使用JavaScript分别上传。这种方法的优点(除了允许上传任何大小的文件外)还在于,它可以向用户发送丰富的进度通知,并可以恢复不完整的上传。例如,这是视频上传网站(例如YouTube)使用的方法。

如果您还没有准备好使用切片方法,您仍然可以使用FileAPI来警告用户,如果他们尝试上传大小超过4gb的文件:

 
 
 <script>
function checkSize(inputControl)
{
 if (typeof FileReader !== "undefined") {
 var cbSize = inputControl.files[0].size;
 if (cbSize > Math.pow(2,32)) alert("File too large for normal upload; it's " +cbSize + "bytes.");
 }
}
</script>
 
 
 <form action="FileForm.asp" method="POST" enctype="multipart/form-data">
<input id="fileentry" type="file" name="fileentry" size="35" onchange="checkSize(fileentry);">
<input id="inpChar" type=hidden name="_charset_">
<input id="inpSub" type="submit" value="Submit using multipart/mixed">
</form>

您可能希望这样做,因为这样会导致无提示提交失败

猜你喜欢

转载自blog.csdn.net/allway2/article/details/109643906