客户端限制上传文件大小的方法

在处理文件上传事务的过程中,对文件大小的校验,从设计角度讲,最方便的方法莫过于在服务器端来做。但是出于服务器压力与客户体验的考虑,一般还是要放在客户端做。不过我总觉得客户端校验上传文件大小没有太好的办法。

第一种方法据说可以在FORM表单之内、FILE文件输入框之前加入如下代码来实现:

如果这样可以,当然很好,不过我这里从来没有成功过。

第二种方法是利用所谓图像预载入技术,当然只适用于图片的上传。示例代码如下:

问题出就出在它是缓存技术上,图片属性并非是从原始文件中取得,而是从加载到缓存的图片文件副本中取得。然而,图片由硬盘加载到缓存需要一些时间,如果选择文件后随即调用GetFileInfo()函数,则此函数返回的数组中,有可能不是正确的数值。因此,对于客户端上传图像而言,这种方法实用性不高。

不得不说,虽然我不太喜欢微软的东西,但对于IE用户,ActiveX有时还是很有用的。第三种方法就是利用ActiveX来获取本地文件的大小:

这种方法确实可以即时获取文件大小,不过只对Windows用户有效,更确切地说,只对IE用户有效,对于Web开发来说,显然局限性太大。

长期以来,客户端只是用来作为信息的展现界面,客户端的控制基本上只能依靠JavaScript,而出于安全性考虑,JavaScript与本地文件系统是绝缘的,这导致客户端与服务器端的交互呈不对称性。因此对于文件上传的客户端校验来说,目前还没有让人感到满意的办法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值