Max file number can php upload at same time
This limit was added in PHP 5.3.1, to avoid a type of DOS attack: temporary files exhaustion.
Added "max_file_uploads" INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion. (Ilia)
(changelog for PHP 5.3.1)
You can increase this limit by changing the max_file_uploads
directive.
Maximum number of files being uploaded by input type file
you may need to change in php.ini file and increase the limit of max_file_uploads
(it mustbe 5 in your server now)
Also make sure to make relevant changes to these parameters (if needed)
upload_max_filesize
post_max_size
max_input_time
max_execution_time
LevSahakyan solved the problem.
He was using
for($i=0; $i<count($_FILES['upload']); $i++)
and because 'upload' is an array itself and has 5 parameters (name, type, tmp_name, error and size) it was uploading only 5 items.
now he is using right parameter -
for($i=0; $i<count($_FILES['upload']['name']); $i++)
Multiple file upload limit
In your php ini file, max_file_uploads shows maximum number of files allowed to be uploaded simultaneously. By default 20 files are allowed. Use below code to set maximum file upload limit.
ini_set('max_file_uploads',1000);
Maximum number of allowable file uploads has been exceeded
The PHP script won't even start executing until all the files have been uploaded. That means that you cannot change the max_file_uploads
directive from within PHP, e.g. with ini_set()
: you need to do it in the php.ini
file. Otherwise, when you change the setting the limit has already been hit.
PHP file upload affected or not by max_input_time?
After some quick benchmarking I do not believe max_input_time
has any bearing on handling large uploads by users with slow connections.
From http://us3.php.net/manual/en/info.configuration.php#ini.max-input-time
This sets the maximum time in seconds a script is allowed to parse input data, like POST and GET. It is measured from the moment of receiving all data on the server to the start of script execution.
I'm using PHP 5.3.8 and used the following .htaccess config
php_value max_input_time 5
php_value max_execution_time 1
php_value upload_max_filesize "2048M"
php_value post_max_size "2048M"
My test script is:
<?php
if (!empty($_FILES)) {
echo '<pre>';
var_dump($_FILES);
echo '</pre>';
}
?>
<form enctype="multipart/form-data" method="POST">
File: <input name="userfile" type="file" />
<input type="submit" value="Upload" />
</form>
With several trials my 1.5G file takes around 16-17 seconds to upload, 4-5 seconds to process, and execution time is essentially 0.
With max_input_time 5
the script completes. With it set to 4 we get PHP Fatal error: Maximum execution time of 4 seconds exceeded in Unknown on line 0, referer: http://localhost/test-upload.php
It also seems max_execution_time
has no bearing since we kept it at 1 throughout the tests.
Validate max number of multiple files that can be attached in Laravel Validation
As attachments
is an array, you can use max
rule to validate it max elements as 3
$messages = [
"attachments.max" => "file can't be more than 3."
];
$this->validate($request, [
'attachments.*' => 'mimes:jpg,jpeg,bmp,png|max:5000',
'attachments' => 'max:3',
],$messages);
Related Topics
Laravel 5.4 Field Doesn't Have a Default Value
Comment Associative Array in PHP Documentor
Multiple Submit Buttons PHP Different Actions
Tcpdf Utf-8 Symbols Not Showing Up
Http_Build_Query with Same Name Parameters
Apache Mod Rewrite for Laravel
.Htaccess 301 Redirect of Single Page
Count and Limit the Number of Files Uploaded (HTML File Input)
How to Get All Captures of Subgroup Matches with Preg_Match_All()
Get Text from <Option> Tag Using PHP
PHP + MySQL + Stored Procedures, How to Get Access an "Out" Value
Notice: Undefined Offset: 0 In
How to Use Special Characters in Recipients Name When Using PHP's Mail Function
Parse Error: Syntax Error, Unexpected '[', Expecting ')'
Executing PHP Code Inside a .Js File