在将其上传到服务器之前,在客户端进行跨浏览器检查文件大小?

时间:2009-08-09 02:28:56

标签: asp.net validation file-upload cross-browser client

客户端验证对于提高可用性非常重要。

在将文件大小上传到服务器之前,是否有任何跨浏览器方式来验证文件大小。我正在使用asp.net文件上传控件。

我发现有些第三方控件可以检查:

http://ajaxuploader.com/Demo/simple-upload.aspx

http://demo.essentialobjects.com/Default.aspx?path=AJAXU

但是如何?

2 个答案:

答案 0 :(得分:4)

以前,在将文件发送到服务器之前确定文件大小的唯一方法是“比javascript更粗”的客户端插件/附件。这些必须安装在客户端系统上。例如。使用SWFUpload,Java applet,ActiveX控件。

现在,您可以使用HTML5文件API,即:

var size = document.getElementById('myfile').files[0].size;

答案 1 :(得分:4)

现在可以使用HTML5的文件API:

<script>
    var myFile = document.getElementById('myFile');
    var size;
    myFile.addEventListener('change', function() {
        size = this.files[0].size;
    });
</script>

most of the latest browsers支持此功能。

Internet Explorer支持涉及ActiveX的this workaround,但它需要降低Internet Explorer的安全设置,因此对于大多数应用程序来说,它实际上不是一个选项。

需要更多工作,但如果你真的需要在IE9或更低版本中执行此操作,请使用基于Flash的上传程序,例如SWFUpload。 IE10将(希望)添加对HTML5文件API的支持。