admin管理员组文章数量:1565292
在过去的几年中,我们对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>
您可能希望这样做,因为这样会导致无提示提交失败。
版权声明:本文标题:Internet Explorer 各版本文件上传和下载限制 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726426089a1070391.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论