bai*_*772 11 php file-upload laravel
我的网站托管在共享服务器上.最大上传限制为5MB.如果上传的文件小于5MB,则所有验证和文件上传都可以正常工作.但是当上传大于5MB的文件时,我会看到这一点
.如何验证或强制文件在服务器的上传限制之下?
您似乎对更改PHP限制以允许更大的文件感兴趣.在我看来,你希望你的最大上传量为5MB,并且如果超过该值,则返回正确的响应.
您可以FileException在异常处理程序中处理异常app/Exceptions/Handler.php.更新render方法以添加所需的代码.例如,如果您想返回验证异常,则需要在异常处理程序内处理异常处理的验证FileException.
public function render($request, Exception $exception)
{
if ($exception instanceof \Symfony\Component\HttpFoundation\File\Exception\FileException) {
// create a validator and validate to throw a new ValidationException
return Validator::make($request->all(), [
'your_file_input' => 'required|file|size:5000',
])->validate();
}
return parent::render($request, $exception);
}
Run Code Online (Sandbox Code Playgroud)
这是未经测试的,但应该给你一般的想法.
你也可以通过javascript进行客户端验证,这样一个太大的文件永远不会真正发送到你的服务器,但javascript可以被客户端禁用或删除,所以最好有好的服务器端处理设置.
对于客户端验证,如果将事件处理程序附加到文件输入的"更改"事件,则可以使用检查文件大小this.files[0].size,然后执行任何其他操作(禁用表单,删除上载的文件等)
post_max_size和upload_max_filesize是可以设置为配置php.ini文件或.htaccess文件或httpd.conf文件的指令。
php.ini示例:
post_max_size=15M
upload_max_filesize=15M
Run Code Online (Sandbox Code Playgroud)
.htaccess示例:
php_value post_max_size=15M
php_value upload_max_filesize=15M
Run Code Online (Sandbox Code Playgroud)
httpd.conf示例:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/html/example/
ErrorLog /var/log/httpd/error.log
<Directory /var/www/html/example/>
AllowOverride None
<IfModule mod_php5.c>
php_value post_max_size=15M
php_value upload_max_filesize=15M
</IfModule>
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
$validator = Validator::make($request->all(), [
'file' => 'max:5120', //5MB
]);
Run Code Online (Sandbox Code Playgroud)
在你的控制器中
并在php.ini中
upload_max_filesize = 10MB
Run Code Online (Sandbox Code Playgroud)
小智 5
更改 php.ini 中的以下参数就可以了!为我。
upload_max_filesize = 50M
memory_limit = 512M
max_input_time = -1
max_execution_time = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51156 次 |
| 最近记录: |