我相信这是有史以来最具史诗般的头衔之一。所以,我上传了here这样的表单。我说人们只能上传1 MB的文件。但是,如果我尝试上传例如1 GB文件,它需要很长时间才能给我一个错误。所以,这里有一个问题。在检查文件大小之前,该文件是在我的托管中下载还是从我的托管中获取资源?为什么它需要年龄和年龄才能给我一个错误,虽然如果我尝试上传2 MB文件它会在1秒内给我一个错误? 谢谢你的解释。
答案 0 :(得分:0)
您应该包含以下输入:
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
根据可以上传的最大文件大小提示浏览器。如果文件太错误,大多数浏览器会警告用户。
我不认为如果用户提交一个文件,PHP将存储文件超过php.ini允许的最大邮件大小(服务器不会有1GB文件占用空间);但是,用户必须在收到服务器的错误响应之前发送所有数据,因为HTTP协议没有规定中断客户端请求并过早发送响应。
请注意,如果允许大量POST数据并将文件大小检查推迟到PHP脚本,则将使用更多磁盘空间。
答案 1 :(得分:0)
如果您正在检查服务器上的文件大小,那么,是的,它必须上传到服务器才能运行检查大小的if语句。
您在客户端进行检查的任何事情当然都会受到客户的支配。所以没有100%可靠的方法来做到这一点。 Artefacto指出了一个抓住大多数用户的好方法。还有一个JavaScript ActiveX对象可能会有所帮助(http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html)但是,用户可以轻松地禁用它(甚至是非常无意的)或者根本不支持它的浏览器。
答案 2 :(得分:0)
只是快速谷歌搜索你的问题我找到了这个旧的stackoverflow主题,Using jQuery, Restricting File Size Before Uploading似乎有可能阻止人们将文件上传到大客户端但只使用flash / Java,也许这个软件会帮助http://www.swfupload.org/。关于描述的第9个子弹点:在上传开始之前控制文件大小。
此致
路