Php ini max file upload

How to change the maximum upload file size for PHP scripts

This article describes how to change the maximum upload file size for PHP scripts by using the upload_max_filesize and post_max_size php directives. 

Changing the maximum upload file size

By default, the maximum upload file size for PHP scripts is set to 128 megabytes. However, you may want to change these limits. For example, you can set a lower limit to prevent users from uploading large files to your site. To do this, change the upload_max_filesize and post_max_size directives.

To ensure that file uploads work correctly, the post_max_size directive should be a little larger than the upload_max_filesize. For example, the following settings demonstrate how to set a file upload limit to 20 megabytes:

upload_max_filesize = 20M
post_max_size = 21M

To verify the current value of the upload_max_filesize directive and other directives, you can use the phpinfo() function. For more information, please see this article.

Setting the directives

The preferred way to set php directives is using the graphical tools in the control panel.

For accounts using the cPanel control panel, see this article.

For accounts using the Plesk control panel, see this article.

Many accounts also allow the use of a custom php.ini file.  For instructions to create a custom php.ini file, see this article.

More Information

  • To view a complete list of php.ini directives, please visit http://www.php.net/manual/en/ini.list.php.
  • For more information about the upload_max_filesize directive, please visit http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize.
  • For more information about the post_max_size directive, please visit http://www.php.net/manual/en/ini.core.php#ini.post-max-size.

Note 1: The file php.ini is not part of Drupal. It is a part of the PHP configuration. To locate it, look up your PHP configuration. If you're on shared hosting, you may not have access to it.

Note 2: Increasing PHP upload size is different from increasing PHP memory limit. You can learn how to increase memory limit here.

Drupal's limits on upload file size are determined by your server's PHP settings (as well as Drupal 6's specified settings that can be set at Admin > Site Configuration > File Upload). The default values for PHP will restrict you to a maximum 2 MB upload file size.

On the settings page for the upload module, Drupal calculates and displays the maximum file size that you can set based upon two PHP settings: 'post_max_size' and 'upload_max_filesize'. Since 'post_max_size' is the limit for all the content of your post, many people choose 'post_max_size' to be a multiple of 'upload_max_filesize' to allow multiple files to be uploaded, but this is not essential. The upload module limits the size of a single attachment to be less than either post_max_size, or upload_max_filesize, whichever is smaller. The default PHP values are 2 MB for upload_max_filesize, and 8 MB for post_max_size.

Depending on your host, changing these two PHP variables can be done in a number of places with the most likely being php.ini or .htaccess (depending on your hosting situation).

For example, to increase the limit on uploaded files to 10 MB:

  • Add the below to the relevant php.ini file (recommended, if you have access). Note that for some hosts this is a system-wide setting. However, for hosts running PHP as a CGI script with suexec (for example) you may be able to put these directives in a php.ini file in your Drupal root directory.
    • upload_max_filesize = 10M
    • post_max_size = 10M
  • Add the below to your .htaccess file in your Drupal root directory.
    • php_value upload_max_filesize 10M
    • php_value post_max_size 10M

The PHP documentation states that the memory_limit setting also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size. If this is an issue, see the page on how to Increase memory available to PHP (3 methods)

Drupal also allows/enforces its own size limits, independently of what PHP allows. These are found in Drupal 6 at "Administer » Site configuration » File uploads" ( /admin/settings/uploads ). In Drupal 7 size limit is controlled on per-field basis. The Drupal settings cannot be larger than those permitted by PHP, but may be smaller if you haven't updated them, so remember to check there also, after updating the php.ini.

Are you a PHP developer or a system administrator managing servers that host PHP applications? Are you looking for a way to increase or set file upload size in PHP? If yes, then follow this article that shows you how to increase file upload size in PHP and also will explain some of PHP’s core directives for handling file uploads as well as POST data.

By default, PHP file upload size is set to maximum 2MB file on the server, but you can increase or decrease the maximum size of file upload using the PHP configuration file (php.ini), this file can be found in different locations on different Linux distributions.

# vim /etc/php.ini                   [On Cent/RHEL/Fedora]
# vim /etc/php/7.0/apache2/php.ini   [On Debian/Ubuntu]

To increaes file upload size in PHP, you need to modify the upload_max_filesize and post_max_size variable’s in your php.ini file.

upload_max_filesize = 10M
post_max_size = 10M

In addition, you can also set the maximum number of files allowed to be uploaded simultaneously, in a single request, using the max_file_uploads. Note that from PHP 5.3.4 and laster versions, any upload fields left blank on submission do not count towards this limit.

max_file_uploads = 25

The variable post_max_size which is used to set the maximum size of POST data that PHP will accept. Setting a value of 0 disables the limit. If POST data reading is disabled via enable_post_data_reading, then it is ignored.

Once you have made the above changes, save the modified php.ini file and restart the web server using following commands on your respective Linux distributions.

--------------- SystemD --------------- 
# systemctl restart nginx
# systemctl restart httpd		
# systemctl restart apache2	

--------------- Sys Vinit ---------------
# service nginx restart
# service httpd restart		
# service apache2 restart	

Thats It! In this short article, we have explained how to increase the file upload size in PHP. If you know any other way or have any questions do share with us using our comment section below.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Php ini max file upload

We are thankful for your never ending support.

How increase upload limit in PHP ini?

To increaes file upload size in PHP, you need to modify the upload_max_filesize and post_max_size variable's in your php. ini file. In addition, you can also set the maximum number of files allowed to be uploaded simultaneously, in a single request, using the max_file_uploads .

What is the maximum file upload size in PHP?

The default PHP values are 2 MB for upload_max_filesize, and 8 MB for post_max_size.

How can I upload large files over 500mb in PHP?

By changing the upload_max_filesize limit in the php. ini file. By implementing file chunk upload, that splits the upload into smaller pieces an assembling these pieces when the upload is completed.

Can we upload a file of any size to a PHP application?

By default, PHP permits a maximum file upload of 2MB. You can ask users to resize their images before uploading but let's face it: they won't. Fortunately, we can increase the limit when necessary. Two PHP configuration options control the maximum upload size: upload_max_filesize and post_max_size .