You may have issues with your hosting provider when uploading large images, typically more than 2MB. That size can handle small images and icons, but nothing significant like audio, PDFs, etc. To get around this, you can usually increase the size limit. You do this by going into your php.ini file (or user.ini for cPanel/Plesk) and adding/altering these two lines:
upload_max_filesize = 64M php_value post_max_size = 64M
If you are noticing no change, you might want to ensure you are putting the values in the correct file. For PHP5 servers, you need to put it inside php5.ini instead of php.ini. And (this is what tripped me up), if you are using cPanel (or apparently Plesk), you want to put those constants inside a user.ini file instead of php.ini.
If you are still noticing no change, there are two more lines that you can change like so:
max_execution_time = 200 max_input_time = 200
If you are still noticing no change and you are using WordPress, you might want to define this constant like so:
define( 'WP_MEMORY_LIMIT', '64M' );
If you are using cPanel, I learned about a method from GoDaddy where you can use a GUI to change the INI values. Go to your cPanel and navigate to Software >> Select PHP Version >> Switch To PHP Options. You will see a listing of some INI variables. If you click on any of the values, a textbox or dropdown will appear allowing you to change the value. Voila!
- +dozen others.