【发布时间】:2011-10-04 05:25:43
【问题描述】:
是否可以使用 java 脚本或不使用 activex 对象来获取上传文件的文件大小? 它应该与所有浏览器兼容。
【问题讨论】:
标签: javascript html file-upload filesize
是否可以使用 java 脚本或不使用 activex 对象来获取上传文件的文件大小? 它应该与所有浏览器兼容。
【问题讨论】:
标签: javascript html file-upload filesize
兼容所有浏览器? - 没有解决方案
兼容 firefox,chrome,safari,opera ?- 以下脚本
document.getElementById("file_elem_id").files[0].size
不适用于 IE8(尚未在 IE9 上测试)
【讨论】:
让您知道 IE-9 或更低版本不支持 jQuery 文件 API。在这些情况下,我们必须通过创建 ActiveXObject 来检查文件大小,因为这是处理系统文件以在上传前获取文件大小的唯一方法。
但是这里还有另一个问题,比如 ActiveX 需要在客户端机器上的浏览器上正确安装/启用/配置,否则将无法识别。因此,我有三种方法可以在这里获取文件大小:- 1)通过将整个文件传输到服务器并从那里返回文件大小来获取文件大小。 2)在客户端使用Silverlight、Flash之类的东西很容易找到。 3)当文件超过文件大小限制时,将文件以块的形式上传到服务器,然后向用户返回一条消息。
在 jQuery 中获取文件大小(IE 10、FF、Chrome 浏览器支持)
$('#fileInputID').change(function(){
var file=this.files[0];
alert(file.size||file.fileSize);
})
使用 ajax 获取文件大小,仅发出 HEAD 请求:
var response = $.ajax({
type: "HEAD",
url: fileurl,// file url on server
success: function () {
alert("Size of file is " + request.getResponseHeader("Content-Length"));
}
});
希望这会有所帮助。
参考:- http://www.aspnetcodes.com/2012/07/example-to-get-file-size-before-upload.html
【讨论】: