为了增加用户体验,我想在发送整个文件之前警告用户该文件太大(比如说> 8M)(由于大小和客户端连接可能需要一些时间)。所有类型的字段都可以“预先验证”客户端以获得更好的用户体验,但我仍然坚持文件大小问题。
这个问题有解决方法吗?
[编辑]我也对APC for PHP开放,其中包含rfc 1867.如果检测到大小太大,我不确定是否可以取消表单上传。如果有人告诉我该怎么做,我当然会奖励赏金。
答案 0 :(得分:6)
这款基于Flash的上传器怎么样? http://swfupload.org/
这看起来很引人注目
如果您热衷于开源,那么您可以将优雅降级与其他HTML5和IE唯一解决方案相结合,以涵盖大多数浏览器安装: http://code.google.com/p/swfupload/
答案 1 :(得分:5)
您可以在非IE 9或更早版本的新浏览器中使用File API。我发现本教程中有一些谷歌搜索:http://www.html5rocks.com/tutorials/file/dndfiles/
此外,MDC参考文献位于:https://developer.mozilla.org/en/DOM/File
不幸的是,我认为IE的所有版本都没有办法。 Flakron的答案涵盖6和7听起来像,但我不确定8,我不熟悉IE API。您可能需要使用基于插件的上传器(Flash,Silverlight或Java)。
答案 2 :(得分:2)
这是一个简单的解决方案
http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html
根据您的需求进行更改
但请注意,据报道它在某些浏览器中不起作用,可能需要进行一些更改。
答案 3 :(得分:1)
这个问题有解决方法吗?
我认为你最终会后悔选择一个“太大”的大小来警告,因为传输速度是吞吐量的真正决定。
最好只显示预计完成时间以及取消选项。进度温度计也很好。这样,用户可以决定是否花费太长时间,无论文件大小或连接速度如何,当过去的大型上传转变为未来的小任务时,您将永远不必返回并修改您选择的“太大”限制不可避免的性能提升。