上传前获取上传文件大小

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

【讨论】:

以上是关于上传前获取上传文件大小的主要内容,如果未能解决你的问题,请参考以下文章

上传前获取文件大小

上传前获取文件大小、图片宽度和高度

js上传文件前判断获取文件大小并且加以判断

iview实现文件上传 限制上传格式大小

上传前验证文件扩展名和大小

layui文件上传回调前对文件类型及大小判断