Deepak Dixit
Deepak Dixit

Reputation: 1600

(413) Request Entity Too Large error during file upload PHP

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

Answers (3)

Tirthraj Barot
Tirthraj Barot

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

Will B.
Will B.

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

chandresh_cool
chandresh_cool

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

Related Questions