上传前获取上传文件大小
Posted
技术标签:
【中文标题】上传前获取上传文件大小【英文标题】:Getting upload file size before upload 【发布时间】:2011-05-10 14:36:11 【问题描述】:当用户选择要上传的文件时,有没有办法在上传开始之前获得该文件的确切大小?我猜这需要在客户端使用 jQuery 或 javascript 完成。有什么想法吗?
【问题讨论】:
【参考方案1】:$("#file_input_selector").bind('change', function()
alert(this.files[0].size);
);
不确定所有兼容性问题,但这对我来说似乎工作得很好。
【讨论】:
【参考方案2】:我建议您查看 html5 File API。这一点,结合一些 JS 可能可以帮助你。我只说可能是因为我还没有机会浏览 HTML5 标准的这一部分。
http://www.w3.org/TR/FileAPI/#dfn-filereader
php 文件上传的工作方式,在文件上传之前或期间很难检查文件详细信息(因为文件在您的代码加载之前就已上传)。
我知道可以用其他语言(可能是 Perl 或 Python)做一些花哨的事情,直接使用脚本处理文件上传(脚本打开套接字并自行处理整个传输),但是 PHP 可以这是为您准备的,并代表您的脚本接受任何文件。如果文件不在 PHP 可接受的范围内,则文件将被丢弃,但仅在文件完全上传后才会被丢弃。
还有几个使用 Flash 实现的文件上传实现,但不是 ActionScript 编码器,我也帮不上什么忙。
【讨论】:
【参考方案3】:Javascript 无法检查文件大小(或访问文件系统)。您需要上传文件以获取大小
【讨论】:
【参考方案4】:在当前浏览器中,这不能在纯 Javascript 中完成。
您可以改用 Uploadify,它使用 Flash。
In non-IE browsers,你也可以use HTML5 to read files on the client。
【讨论】:
回复:caniuse.com。信息丰富但令人沮丧的链接。我想知道 IE 是否会永远处于亏损状态。【参考方案5】:看看这篇文章:
http://forums.digitalpoint.com/showthread.php?t=6704【讨论】:
以上是关于上传前获取上传文件大小的主要内容,如果未能解决你的问题,请参考以下文章