Beginner's Guide for WordPress - Start your WordPress Blog in minutes.
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
WordPress Plugins
View all Guides

How to Increase the Maximum File Upload Size in WordPress

Last updated on by
Follow WPBeginner on YouTube
How to Increase the Maximum File Upload Size in WordPress

Depending on the web hosting company you choose and the package you select, each of you will see maximum file upload limit on your Media Uploader page in WordPress. For some it is as low as 2MB which is clearly not enough for media files like (audio / video). Most pictures are under 2MB, so it is fine for just pictures. In this article, we will show you how to increase the maximum file upload size in WordPress.

Media File Size Limit

Note: This is an intermediate level tutorial. It may not work with some shared hosts in which case you would have to ask your hosting service provider for support. We use HostGator, and they are more than helpful when it comes to issues like this.

1: Theme Functions File

There are cases where we have seen that just by adding the following code in the theme function’s file, you can increase the upload size:

@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

2. Create or Edit an existing PHP.INI file

In most cases if you are on a shared host, you will not see a php.ini file in your directory. If you do not see one, then create a file called php.ini and upload it in the root folder. In that file add the following code:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

This method is reported to work for many users. Remember if 64 doesn’t work. Try 10MB (sometimes that work).

3. htaccess Method

Some people have tried using the htaccess method where by modifying the .htaccess file in the root directory, you can increase the maximum upload size in WordPress. Open or create the .htaccess file in the root folder and add the following code:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

Again, it is important that we emphasize that if you are on a shared hosting package, then these techniques may not work. In that case, you would have to contact your web hosting provider to increase the limit for you. Some hosts completely turn down their users. We recommend that you use HostGator. Their support folks are very helpful in these situations.

Editorial Staff at WPBeginner is a team of WordPress lovers led by Syed Balkhi. Page maintained by Syed Balkhi.

WPBeginner's Video Icon
Our HD-Quality tutorial videos for WordPress Beginners will teach you how to use WordPress to create and manage your own website in about an hour. Get started now »
  • WPBeginner Staff

    You can connect to your website using an FTP client and undo the changes you made.

  • Chris

    If you’re just trying to upload files yourself in the admin panel (media), make a new plain text document, save it as whatever name (including extension) of the large file you’re trying to upload. So if you’re trying to upload “,” save a blank text document as Upload this blank text file you just created in WordPress. Then, go to FTP or file manager, go to wp-content/uploads/(whatever year it is)/(whatever month it is). You should fine there. Delete that file (which is just a plain text file) then upload the real, making sure the names match up. Then when you go back to media it will be the right file.

  • Dan Rosenberg

    PHP.INI method worked perfectly. Thanks!

  • Ben Peacock

    Sorry please find this instead Login to the root machine type the following command nano /usr/lib/php.ini

    find ; Maximum size of POST data that PHP will accept.
    post_max_size = 2M change this to 64

    Save and exit and then you should be able to upload what you need hope this helps :)

  • QuangPham

    Thanks for the instructions on how to fix.

  • Voicu Ioan Virgil

    Thanks, great tutorial !

  • Maria McCarthy

    Adding the php.ini file to my wp-admin folder SPECIFICALLY worked for me as well! Thanks everyone! Only took me almost 4 hours to find a page that had the info which would work for me – lifesavers!

  • pete

    found the php.ini worked in wp-admin network php.ini

  • Tabassum Javaid

    htaccess method works fine for me. thanks

  • Mike

    with some host ( godaddy ) for example, there may be some additional steps.

    And to what php you are running. For godaddy with php5, rename php.ini to php5.ini and remember if you have accuracies running, you will have to temp. end them before the file will even take over, or wait awhile for it.

    System Processes / End all

  • jaymz

    Many thanks for the article. For self-hosted there’s another way as methods 2 and 3 didn’t work for me as the .htaccess change had no effect and neither did adding a php.ini file in /wp-admin. It was simply a case of finding the existing php.ini file for Apache. On Ubuntu I ran;

    sudo find / -name php.ini

    This found my ini file in /etc/php5/apache2/
    All that was needed was to locate the parameters and update the values for;

    Thanks for getting me there!

  • D Winzell

    Thanks for writing this. The php.ini does need to be in the wp-admin directory to function correctly. Just checked my host (Vaurent) and they allows up to 105M file uploads so I am going to find something that size and see if it makes it’s merry way up to my blog.

  • Matt

    I just want to add, using godaddy you cannot use the htaccess method, it will throw you into a 500 internal service error.

    You must use the php.ini method. Only difference will be you have to have a php.ini and a php5.ini and the lines must be added to both. The files need to be in the root directory of where the wordpress install is, not in the wp-admin folder, outside of it.

    Also if you have multiple wordpress installations This has to be done and placed into each directory that each wordpress installation is located.

  • GSJha

    Very Good Post.

  • sandeep

    php_value upload_max_filesize 64M
    php_value post_max_size 64M
    php_value max_execution_time 1500
    php_value max_input_time 1500

    i use these values in .htaccess and it works !


  • Thyme

    So I did all of those and changed the php.ini in the /etc folder (my site is on mediatemple’s grid-service) and nothing was working but then I vaguely remembered there was something I had to change in the network settings if my installation was multisite and there it was. Ugh.

    So yeah, if you’ve got a WordPress network, go to your network settings and change the max file size upload near the bottom of the page.

  • Alex

    This is the only thing that worked for me, I tried all the options, I’m on 1&1

    memory_limit = 32M
    upload_max_filesize = 32M
    post_max_size = 32M
    file_uploads = On

    ** Size can be anything

    The key was the “file_uploads” line

    Place this in the /wp-admin/ folder.

    • Kristina

      Worked for me! I’m on Bluehost.

      Thanks for your post :)

    • Brandon

      this worked for me after everything else hadn’t. I’m so relieved!

      I’m also on 1&1. Once I added the “file_uploads = On” line to my php.ini file it worked like a charm!!


    • Hafeez Ansari

      Thank you Alex, This works for me in /wp-admin/ folder. Problem solved. :)

    • Sam

      Alex you are the great! Your solution worked for me! Many thanks!

    • Johnny T

      Genius! This worked for me! Just to clarify. Create a php.ini file in the wp-admin folder and only add the lines of code in Alex’s post. FTP this to your server and you’re good to go. Thanks Alex. You are a genius! :-)

    • vanniee

      what is the name of the file?

  • Noor

    Worked by .htaccess method. Salute man.

  • Bogdan

    Great advice. My upload limit was 8MB and I only tried the htaccess trick and it worked, it increased to 64MB. I tested it and it is owrking beautiful! Thank you so much for your great advice!

  • VoidnessMD

    Important thing to note: Using the php.ini method requires that the file be located in the wp-admin folder, not the root of your WP installation.

    • DJ

      THANKS!! This sorted it out for me on my end :)

  • David Connolly

    Superb… clear and the final solution worked.
    a big thank you

  • Bongo

    This website is the coolest for learning WP! Keep up the good work guys…more please…more! lol

    • Editorial Staff

      Thanks for the kind words :)

  • Ido Schacham

    Finally, a post that clearly explains how to change the memory limit in WP. Thanks!

  • mostafa

    i successfully did it with the third method. my upload size was 8 M, but now its 64 M. for me its more than enough.

    Thanks a million.
    by the way i’m from Iran.

  • Rowan Evenstar

    The creating a php.ini file and popping it on the route sorted it straight away!
    Cheers, much appreciated!

  • assassinateur

    thnx, but i am in a shared hosting so nothing work, i did put the php.ini in wp-admin and in the blog folder and in the homefolder and dodnt work also .htaccess didnt work changed the theme and didnt work

  • Arvind Kukreti

    Adding code in .htaccess file might throw you 500 Internal Error… the best way is create a php.ini file and upload it in wp-admin folder

    • Stephen Afije

      Waooo that was brilliant one there all i did was to create php.ini and uploaded to the wp-admin folder it worked like no other thing thanks

  • leo

    htaccess method works fine for me. thanks

  • Andrew Lilly


    I have done all of the above and still wont let me import an 11mb xml file. i need it as its got 1500 products on i need to import.

    I have spoken to my virtual server provider 1and1 and they said all i need to do is add the code to the .htaccess file but it doesnt seem to work

    Please someone help

    • Editorial Staff

      If none of the above works, then the only person who can help you is your host.

    • Ali Amer

      It may be related to MIME Type. In that case, resolve it from cpanel

  • Dominique

    None of this worked for me. I tried them all. I am using WPEngine to host.
    Any suggestions?

    • Editorial Staff

      Ask WPEngine to increase the limit for you.

  • Thad

    The htaccess method worked for me. Thanks for the post. Good info, well presented.

  • Richard

    php.ini option worked for me but on the php.ini file in /wp-admin directory

    • Mike

      perfect – worked a treat – set to 200MB and works fine.

    • Matheus M.

      In localhost work the .htaccess. But in host only php.ini. Thanks for help.

    • dan

      Yes, works in /wp-admin. thanks

  • marin

    Thanks htaccess worked for me appreciate it.

  • Makarand Mane

    I have hosting on mediatemple. First two methods are not worked me. Only htaccess methos is worked for me.


  • Gavin

    I found that php.ini was hidden in the cgi-bin folder which some shared servers have in their root directories. I amended this as above (AND added a php5.ini jut in case) but until I’d amended this, nothing else worked. Thanks for the VERY useful thread!

    • Cath

      Thanks Gavin, none of the other methods worked for me then I saw your comment, there were php.ini and php4.ini files were in the cgi-bin folder. I found the relevant code in both files – post_max_size = , and upload_max_filesize = , amended these and now all works fine.

  • Jarod Billingslea

    Thank you very much for this article!

  • Void lon iXaarii

    thank you so much! had tried so many solution and your .htaccess finally worked

  • Anthony

    The only thing that worked for me was to create/edit a php.ini file and add the following:
    memory_limit = 100M upload_max_filesize = 100M post_max_size = 100M file_uploads = On
    and uploading it to the wp-admin folder.

    • Alan

      Option 2 worked perfectly fine, though I had to place the php.ini file into the wp-admin folder instead of the root directory.

      phpinfo was detecting the php.ini file in the root, but not WordPress.

      I currently have WP 3.2 installed…

      • RPaterson

        Thanks for that extra tip, this is what finally worked for mine

    • arun

      thanks anthony, your method saved me a lot.

    • Quest The Wordsmith

      This is exactly what worked for me as well.

  • RamiAlloush

    Thx :)

  • Snowboard

    thx for this post , but what is the default limit ?

    • almb1111

      64 MB

      • kat1111

        It was 8MB, but I got it to 192 MB @almb1111

    • kat1111

      Ty for responding, I finally got some help with it, I needed to change the PHP to PHP-5.

  • kat1111

    I am evidently newer than most here, I don’t understand which is “root” directory, is it Editor under the Appearance tab? Also, I don’t undertand how to get to hcaccess. Any help is appreciated.

  • jameserie

    htaccess method works for me. – cheers!

  • MyDreamDinZ

    What is the highest limit for upload

    can i set it to 1024M ?

  • alexlee.cs

    The .htaccess method works for me. Thanks.

  • rajkanuri

    Thanks for the code.. it is really helpful for me..

  • pranjalgupta2009

    Yes ! putting php.ini also in wp-admin works for me. thanks

  • Snipsley

    Thanks, but neither of this worked for me.

    But I found the solution!
    I had to place that php.ini to /public_html AND /public_html/wp-admin and it works!

    • Biju Subhash

      ya..the same thing works me too..
      Thanks Snisley

    • Trond

      Great! This worked for me as well :) I run WordPress on an MS Server 2008 with IIS 7.5 from my host provider, btw

    • kenseneff

      Worked for me as well. Thanks!

    • Kiran

      Thanks dude. It’s works for me.

    • Rollie Osayan

      Yes. It is also working here. thanks

  • Kaushik Biswas

    At the end of a post, I want to display recent posts from that specific category under that post – how can I do this?

  • Clemens Plainer

    Thanks for that tip. But obviously I’m on a shared server ;-(
    so that didn’t work for me.

    • nycxs

      If you are using PHP5 the file should be called php5.ini and be in the root of the shared folders.