Home
 

Customer Support

Search for keywords:

Browse by category:

I can't upload a file larger than 8MB through a PHP
script

If you have php error logging with reporting set to E_ALL then you will see the PHP Error reported:

PHP Warning: POST Content-Length of 9470478 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

The problem is unset or incorrect settings in your PHP configuration file.

To allow file uploads larger than the default 8 megabytes, put these settings in your php.ini:

post_max_size = 16M
upload_max_filesize = 16M

You can check phpinfo() output to make sure that those values get set correctly.

Also make sure that your script does not have an html form input tag for MAX_FILE_SIZE that is smaller (in bytes) than the size of the files that you are trying to upload.

Now you will be able to upload files up to 16 megabytes.

NOTE: although PHP.net lists post_max_size as being a PHP_INI_PERDIR, because of the way we run PHP in CGI, this cannot be changed in your .htaccess file. However, there is a workaround:

Copy your current php.ini file into the directory that you require the custom post_max_size in.

**THE NEXT STEP IS VERY IMPORTANT**
Obviously, we don't want the outside world to have access to your settings in your php.ini file. The solution? Drop an .htaccess file in the same directory with the following lines in it:

<Files ~ "^.*\.ini">
Deny From All
</Files>
This will deny any web requests to any file in that directory ending in .ini; thus preventing your PHP settings from being seen by others.

Now you have a secure php.ini file that you can modify settings in to affect the .php files within that directory.

For a test upload script that works, see this other FAQ

User-Contributed Notes

add a note
28-Jan-2003 18:04
If you are trying to stuff a big file into MySQL, MySQL has it's own
blob size limit set that you can't alter, which is 4MB

user -at- example.com
26-Feb-2004 12:42
Check the memory_limit variable as well. For certain scripts
(squirrelmail for example) this is the limiting value.
Though changing it seems a dubious solution. 

24-Jun-2005 12:50
Make sure php sees the php.ini file - check "Configuration File
(php.ini) Path" entry in phpinfo()'s output and copy php.ini to that
directory.

add a note

Related Questions:


How do I set PHP include_path?

How do I change timezone for PHP?

What PHP modules are available and how do I load them?

Can I run a PHP script on cron?

How do I do html form file uploads?

Why does a PHP function give an error that it is undefined?

Why does my PHP script throw an Internal Server Error 500?

Why does PHP HTTP authentication not work?

What version of PHP are you running and can I see a phpinfo()?

Can you change session cookie timeout in php.ini for me?

Do you have a quick form mail script?

Where is the php_error_log?

Can I use a PHP extension like PDFlib that I have personally purchased a license to use?

How do I get different character sets within my PHP page to display correctly?

What's the difference between running PHP as a cgi or as a module in safe mode?

Do you offer PHP5 with MySQLi?

Can I have all .html pages parsed as PHP?

My PHP session is lost whenever I go to a secure URL using the shared SSL certificate.

The PHP curl module doesn't work.

Where can I download free PHP scripts?

Do you provide PEAR?

Do I need to set any 777 permissions in order for my PHP scripts to create files and directories?

What is CAPTCHA? How can I use it?

How do I execute my .php files as PHP 5?

How do I use the url_rewriter.tags setting for PHP?

The PDFlib extension gives a UPR description error.

Can I use Smarty Templates?

Why does flush() not flush the data to my browser?

Why does PHPLIB sessions give me a MySQL Database error?

Will IonCube encoded files work?

Will my Zend Encoded files work?

The pfpro pfpro_process() function keeps giving me Error 31

I need the virtual() function and it is not available.

Why does getallheaders() say undefined function?

Can I talk over SSL when opening an IMAP connection with the PHP imap_open() function?

How do I configure PHP?

How can one PHP file transparently handle all search-engine friendly URLs?

How do I put PHP sessions into a database instead of the default files-based method?

My PHP script needs a newer version of Zend Optimizer. What do I do?

I need to execute my cron job with PHP5.2

I need a newer version of PHP to run certain software

Can I use the pfpro extension in PHP 5.2?

Browse Categories:

Getting Started, FTP, Telnet/SSH, Moving Domains, E-mail, Traffic Reports, Mailing Lists, Apache, PHP, CGI, Other Server-Side Scripting, MySQL Database, Imaging Libraries, Other Software, Billing & Terms, Control Panel, E-commerce, Pre-Sales


Modwest PHP Hosting      Copyright 2000-2009 by Modwest, Inc.      About    |    Blog    |    Community    |    Design    |    Jobs    |    Contact