+3  A: 

Try this:

ini_set('upload_max_filesize', your_value_here);

Make sure also that you have specified the correct acceptable settings for:

  • file_uploads
  • upload_max_filesize
  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size
Sarfraz
A: 

The limits enforces by upload_max_filesize are enforced before the php script is run, so the setting cannot be changed dynamically with ini_set.

For more information on the file upload ini settings and where they can be changed, see: - http://php.net/manual/en/ini.core.php#ini.sect.file-uploads - http://php.net/manual/en/configuration.changes.modes.php

Assuming by "user" you mean a visitor to your site, there are really only two methods you can enforce such a limit without the file reaching its final destination:

1) Before the upload has occurred: On the client side. You could definitely do this using a java-based uploader. Whether you can get the filesize of the selected file using javascript, I don't know.

2) After the file is uploaded to the server, but before you move it to the final destination (before you run move_uploaded_file)

AllenJB
A: 

If you can't modify your php.ini, you might be able to do it with a .htaccess file:

php_value upload_max_filesize 50M
php_value post_max_size 50M
Harold1983-