Reputation: 1600
I am facing a problem which is related to PHP file upload . I am trying to submit a form using AJAX . This ajax request contains text variables and file(s) . When I am trying to send only one file then everything is going okay but in case I am sending more than one file. I am getting 413 Request Entity Too Large error . I am using Apache . Here is my code
const data = new FormData();
data.append('name', 'my upload file');
for (const i = 1; i <= 4; i++) {
const img = $(`#src${i}`).find('img').attr('src');
data.append(`image${i}`, img || '');
}
$.ajax({
type: "POST",
url: "server.php",
data: data,
cache: false,
processData: false,
contentType: false,
success: (result) => {
console.log(1);
}
});
All my uploaded files are lesser than 700KB , I also checked the PHP configuration using ini_get_all() and I found that post_max_size is 48MB , upload_max_filesize is 32MB . I am not getting that what is the reason for that problem .
To check that whether I am exceeding the allowed upload limit , I added four files (each with 10KB) but it also generating same problem while I am able to send one file of 400KB . Is there any way to identify the root cause of this problem.
Upvotes: 3
Views: 12521
Reputation: 2679
You need to set the value of upload_max_filesize and post_max_size in your php.ini :
; Maximum allowed size for uploaded files. upload_max_filesize = 64M
; Must be greater than or equal to upload_max_filesize post_max_size = 64M
After modifying php.ini file(s), you need to restart your HTTP server to use new configuration.
You may also increase the size using .htaccess in php
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Upvotes: 0
Reputation: 18416
See http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestbody
In your httpd.conf or .htaccess file change
LimitRequestBody 0 #Unlimited
Then restart Apache to ensure change is updated.
You can also check your httpd/apache logs to see if you are receiving a ModSecurity error. If so, update your ModSecurity configuration. /etc/modsecurity/modsecurity.conf
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRequestBodyNoFilesLimit
Upvotes: 1
Reputation: 11830
You need to change your nginx conf (/usr/local/nginx/conf/nginx.conf) setting to this
client_max_body_size 512M;//set it to higher mb
After setting this value you would need to restart nginx
service nginx restart
Upvotes: 4