繁体   English   中英

如何在上传之前检索文件的大小?

[英]How to retrieve the size of a file before uploading it?

我的网络应用程序中有一个文件输入标记。 我想在将文件发送到服务器之前检查文件是否太大。 当然,我还有验证服务器端。 有没有办法用JavaScript做到这一点? 它必须在IE7 +和FF3 +中工作。 谢谢。

编辑:somefileinputobject.files [0] .filesize在FF中工作,但不在IE中。

这是一个难题。 您必须使用AJAX执行此操作,并使用浏览器发送到服务器上的文件大小标头。

雅虎的UI库有一个工具来帮助解决这个问题。 YUI上传器

Javascript无法做到这一点。 它会有严重的安全问题。 也许闪光可以。

简答:不,你应该在服务器上处理这个问题。

答案很长:不可靠。 使用IE,您可以执行以下操作:

function checkSize(filespec) {
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.size;
// Do something with var s
}

但是这很容易被浏览器的安全设置或其他浏览器或平台的使用所压缩。

无法使用Javascript为所有浏览器可靠地完成,但您可以从web.config限制发布数据的总大小

如果您使用传统的文件输入控件,那么您真的没有很多选项。 您无法在客户端进行检查,它将在您有机会检查服务器端之前达到配置的maxRequestLength。 您可以捕获超过maxRequestLength时发生的异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM