This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

AJAX File Upload


This plugin will help you add file upload feature to your site, set maximum upload size, allowed file extensions, and much more through a simple shortcode or a custom function.

Totally AJAX, your uploads will be processed faster and an elegant way. All you need to do is to add the shortcode to your content, or call the plugin’s custom function whithin your code and that’s it.

You can either use [ajax-file-upload /*settings as attributes*/] shortcode to display the quick media upload buttons in the front-end, or use do_shortcode('[ajax-file-upload ..]') in your PHP templates, or the built-in function ajax_file_upload( $args ) for which you should set the settings as an array in the 1 function parameter (those act like shortcode attributes, in case of confusion).

Some featues:

  • Upload any type of media as long as your settings allow, nice and easy

  • Set file extensions to let limit the uploads to only custom extensions, like for instance images (jpg,png,gif,bmp..)

  • Set maximum upload size and when a user tries to upload a larger file, they will get a notice (which you can totally customize)

  • Custom permission to upload, you can choose to allow uploads to certain user role, or logged-in users only, or everyone!

  • Fully extensible, and creates custom JavaScript events which you can hook into to get the upload data settings, response, file, and much more (view docs)

You can always switch between settings from a shortcode to another, you are not obliged to use the same settings, but when a shortcode’s settings are empty or the unique identifier attribute is not set then in this case, the default settings (you can change them in the admin) will be used.

Also, supports child theme. You can copy the entire plugin folder to your child theme and there modify the JavaScript, CSS, and even the shortcode template and other files. Basically any file except the main loader file.

This is totally free and open source plugin. You can contribute to it, fork it on Github, include it in your project and much more and always feel free to do so. Licensed under GNU GPL, just like major WordPress plugins and WordPress itself.

If you liked it, please leave us a useful review here on WordPress, share around the social media and star the Github repository. Thank you in advance!

More useful documentation can be found on Github and you can contact me anytime from this contact form:


  • An example use in WpChats 3.0 where used to upload the profile cover photo and process it
  • Testing the uploader in my localhost
  • Plugin admin settings screen
  • Dumping the response data while listening to a custom JavaScript event by this plugin


From your WordPress dashboard

  1. Visit ‘Plugins > Add New’
  2. Search for ‘AJAX File Upload’, select this plugin and install and active.
  3. Assuming you’re done, you should be redirected to the ‘about’ page initially on first install.


ሕዳር 20, 2016
First of all, I do want to say the plugin is a great start. However, I have already found 2 ways to improve it. First of all, you don’t mention all of the hooks available in the documentation. I found some hooks in the source code that I was able to use to add my own email functionality. //Add Custom Email to AJAX File Upload for Purchase Orders add_action(‘afu_after_upload_done’, ‘ajax_po_after_upload’, 99); function ajax_po_after_upload($args){ $message = $args[“url”]; wp_mail($message); } It would be nice to add this email option as a parameter as well. Something like: send_email=””. By default, it would just send some very basic email with a link to the file. That way people don’t have to go digging through the uploads directory to try and find the file. Also, it would be really nice if you included a shortcode parameter for “single_file” upload. Basically the idea here is that instead of having to click the upload button after the selection of the file, it would just auto upload the file immediately after selection – thus assuming there is only going to be a single file uploaded. Therefore, once that single file is selected, the need for the upload button is gone. Just select file -> click OK -> file is uploaded immediately. So, in this case, there would be no need to even display the upload or delete buttons at all. If you are willing to use this idea, I am willing to write the code for you as long as you include it in the plugin so it will always be there in future updates. Deal?
ሕዳር 2, 2016
I would like to thank the developer for taking the time to create a well thought out and very customizable plugin. There are many hooks and actions from which you can expand on to create a more advanced plugin that is feature rich. This is definitely a time saver for anyone looking to add upload functionality to their site.
መስከረም 3, 2016
Works great, you can implement this the way you want..
Read all 6 reviews

Contributors & Developers

“AJAX File Upload” is open source software. The following people have contributed to this plugin.


Translate “AJAX File Upload” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Initial release