0

我相信这是有史以来最史诗般的游戏之一。所以,我有像这里这样的上传表格。我让人们最多只能上传 1 MB 的文件。但是,如果我尝试上传例如 1 GB 的文件,它需要很长时间才会给我一个错误。所以,这里来了一个问题。在检查文件大小之前,该文件是在我的主机中下载还是从我的主机中占用资源?为什么它需要很长时间才能给我一个错误,尽管如果我尝试上传 2 MB 文件它会在 1 秒内给我一个错误?谢谢你的解释。

4

3 回答 3

0

您应该包括如下输入:

 <input type="hidden" name="MAX_FILE_SIZE" value="30000" />

提示浏览器可以上传的最大文件大小。如果文件太错误,大多数浏览器都会警告用户。

如果用户提交一个文件,我认为 PHP 不会存储超过 php.ini 中允许的最大帖子大小的文件(服务器不会有一个 1GB 的文件不必要地占用空间);但是,用户必须在收到服务器的错误响应之前发送所有数据,因为 HTTP 协议没有规定中断客户端的请求并提前发送响应。

请注意,如果允许大量 POST 数据并将文件大小检查推迟到您的 PHP 脚本,将使用更多磁盘空间。

于 2010-06-25T18:04:18.090 回答
0

如果您正在检查服务器上的文件大小,是的,它必须上传到服务器才能运行检查大小的 if 语句。

当然,您在客户端进行检查的任何操作都将受到客户端的支配。因此,没有 100% 可靠的方法来做到这一点。Artefacto 指出了一种吸引大多数用户的好方法。还有一个 JavaScript ActiveX 对象可能会有所帮助(http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html),但同样,用户可以轻松禁用它(甚至是无意的)或浏览器根本不支持它。

于 2010-06-25T18:07:57.007 回答
0

只是快速搜索一下您的问题,我发现了这个旧的 stackoverflow 主题,使用 jQuery,在上传之前限制文件大小似乎实际上可以阻止人们将文件上传到大客户端,但只能使用 flash/Java,也许这个软件会帮助http://www.swfupload.org/。描述的第 9 个要点:在上传开始之前控制文件大小。

问候

卢克

于 2010-06-25T18:27:27.877 回答