【发布时间】:2019-01-04 00:06:21
【问题描述】:
在php.net 上记录了如何在表单中限制上传文件的大小,在客户端。这可以在任何服务器端约束之外完成。
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
MAX_FILE_SIZE 隐藏字段(以字节为单位)必须位于 文件输入字段,它的值是接受的最大文件大小 php。应始终使用此表单元素,因为它可以为用户节省 等待传输大文件的麻烦只是发现 它太大,传输失败。请记住:愚弄这个 在浏览器端设置非常简单,所以不要依赖文件 此功能阻止了更大的尺寸。它只是一个 为应用程序客户端的用户提供便利功能。 但是,最大大小的 PHP 设置(在服务器端), 不能被愚弄。
在 Symfony 中有没有一种方便的方法来做到这一点?
例如 Symfony\Component\Form\Extension\Core\Type\FileType。
让我们为各种版本的 Symfony 回答这个问题,因为我无法通过 Google 找到相关内容。
【问题讨论】:
-
此外,在 Google 中搜索“symfony max file size”会显示上述文档作为结果 #2。
-
这将限制表单提交后的大小。但是如果大小太大, $_POST 字段为空 $request->request 无论如何都包含输入。 for 已提交。但它没有验证。但是,在此之后呈现表单时,所有输入值都丢失了。
-
如果您的服务器配置阻止上传请求被处理,您希望 Symfony 如何验证文件的大小?
-
我明白了。我误解了你的问题。然而,像这样的客户端提示很容易被绕过,所以不应该专门使用。您还需要其他检查。