客户端验证对于提高可用性非常重要。
在将文件大小上传到服务器之前,是否有任何跨浏览器方式来验证文件大小。我正在使用asp.net文件上传控件。
我发现有些第三方控件可以检查:
http://ajaxuploader.com/Demo/simple-upload.aspx
和
http://demo.essentialobjects.com/Default.aspx?path=AJAXU
但是如何?
答案 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的支持。