File Uploads

for 

Most Popular

Add file upload fields to any WordPress form. Set allowed file types, sizes, upload directories and save to WordPress, Google Drive and more.

Join our 82,801 happy customers
Ninja Forms File Uploads logo
$49
$72
$99

Instant Access

Looking for a WordPress file upload plugin? There’s a lot of options out there, but none that give you the easy control of Ninja Forms File Uploads. Want to accept any file type, or restrict to just one? Frustrated by file size limitations? Wish you could organize uploaded files with custom names and directories? Want to skip WordPress and send the files straight to Google Drive or other cloud storage? Easily create a file upload form for WordPress that checks every box on your list!

With Ninja Forms File Uploads, you can:

Upload Files
Add a file upload field to any WordPress form.
Limit Attachments
Set the number of files you want to accept.
Set File Size Limits
Specify minimum & maximum allowed file sizes.
Restrict File Types
Control the allowed file types per field.
Rename Files
Set rules to change file names on upload.
Organize Uploads
Create custom file directories per upload.
Save Anywhere
Upload to your WP media library, Google Drive, & more.
Email Files
Attach uploads to notification emails.

Turn any form into a WordPress file upload form!

You can add a file upload feature to any WordPress form in seconds. Just click to add or drag and drop a file upload field onto any form. That’s literally all there is to it. It can be a brand new form, or one that you’re already using. No html or other code required.

wordpress file upload form field in ninja forms builder

Easily set limits on the number of files, types, and size.

restriction settings for file number, type, and sizeEach form upload field comes with easy to use controls for managing the number of files you want to accept, file type, and file size restrictions.

Aside from the restrictions you set yourself, Ninja Forms puts no limits on the types or sizes of fields you can accept!

Photo or image upload? Video Upload? Docs, gifs, anything you need, you can upload it all!

Send uploaded files to Google Drive, Dropbox, Amazon S3, or your WordPress media library!

Most file upload plugins for WordPress dump everything into your uploads folder only. You don’t have to settle for that. With Ninja Forms File uploads, it’s easy to route uploaded files straight to where you need them.

Want to keep files in your WordPress media library? Just toggle the setting on your file upload field. That’s all it takes.

Prefer to use your favorite cloud service? You can upload files straight to Google Drive, Dropbox, or Amazon S3 instead. Connecting is as easy as pressing “connect”. Seriously:

connect button to upload files to google drive

Files sent to the cloud like this don’t hit your server first, so you don’t have to worry about server file restrictions!

Rename files on upload.

Tired of wondering what bpi97ppjef.jpg is before you open it? Every file upload field has an option to rename files on upload. Easily add the submitter’s first name, last name, company, or any other bit of information they’ve provided in the form to the name of the file!

You don’t have to be a tech wiz to pull this off, either. Using Ninja Forms’ merge tags, all you need to be able to do is point and click!

Organize uploads with custom file paths / directories.

Just renaming the file sometimes isn’t enough to keep organized. Whether you’re storing files in WordPress or in the cloud, you can easily use shortcodes to define the file path or directory that each upload(s) will live in.

Want uploads from the same form to always sort into one folder? No problem.

Need every new submission to live in its own folder inside that form’s folder? Also no problem.

Want each new submission to have its own folder named after the person submitting the form? You can do that too.

Never hunt, peck, or wonder what a file is or who it belongs to again!

Accepting uploaded files shouldn’t be work.

And it doesn’t have to be. With Ninja Forms File Uploads, it’s set and forget right out of the box. This is the last and only WordPress file upload plugin you’ll need. Get set up today and move on to thinking about better things!

Purchase File Uploads by itself on this page, or as a part of any Ninja Forms membership plan.

Frequently Asked Questions

Can File Uploads upload any file to WordPress?

Yes, File Uploads allows your users to upload any file to WordPress from any form with a File Upload field. While your host/server may have some restrictions in place (these can often be changed if you ask), File Uploads itself does not.

Can I restrict files by file type or size?

Yes! Each file upload field can be set with its own file type and file size restrictions.

What type of support is available to Ninja Forms customers?

We have a dedicated support team standing by to help with anything you may need. We’re available 9am-4pm EST, Mon-Fri, and strive to answer all customer requests within 24 hours.

How do Ninja Forms licenses work?

Licenses are subscription based and will auto-renew each year unless cancelled. If cancelled, you may still use your extensions but will no longer receive important updates or support once the license expires.

Can I get a demo or trial of Ninja Forms add-ons before I buy?

We don’t have a demo or trial version of our add-ons, but we do offer a 14 day full refund policy for any reason whatsoever.

Changelog

3.3.16 (06 June 2023)

Bug Fixes:

  • Correct errant namespace scoping for autoloading

3.3.15 (17 May 2023)

Bug Fixes:

  • Ensure fieldset repeater functionality

Other:

  • Update plugin build process

3.3.14 (7 March 2022)

Bug Fixes:

  • Fix PHP 8 error in which curly braces are no longer supported

3.3.13 (30 November 2021)

Bugs Fixes:

  • Escape filename to prevent XSS. Credit: Nuno Correia (Blaze Security) for responsibly reporting issue
  • Fix \’required parameter follows optional\’ error

Other Enhancements

  • Automate plugin build

3.3.12 (1 Aug 2021)

New:

  • French translations added

Bugs:

  • File Upload fields not working in Repeater Fieldsets
  • Some string translations not loaded correctly
  • File saved to media library even if save to server is turned off

3.3.11 (24 Mar 2021)

New:

  • Tested up to WordPress 5.7
  • Compatibility with PHP 8

Bugs:

  • PHP notices when using PHP 8
  • Cyrillic characters are removed from file names when uploading to Google Drive

3.3.10 (27 Oct 2020)

New:

  • Advanced setting in the External File Upload action to upload files in the background

Bugs:

  • Fix fatal error \’Uncaught NF_FU_VENDORGoogle_Service_Exception\’ when Google Drive connection is changed when background uploading a large file
  • Fix images not appearing when using the embed mergetag in PDFs
  • Fix files with cyrillic characters in the filename being uploaded as unnamed-file

3.3.9 (6 Oct 2020)

Bugs:

  • Fix uploads taking a long time when renaming file directories
  • Fix File Upload mergetags not available in PDFs created at form submission time
  • Fix cancel button not using label defined in field display settings

3.3.8 (7 Sept 2020)

New:

  • Compatibility with the PDF Submissions addon

3.3.7 (10 Aug 2020)

Bugs:

  • Fix background upload jobs duplicating files when multiple file upload fields on a form

3.3.6 (4 Aug 2020)

Changes:

  • Tested on WordPress 5.5
  • Default Amazon S3 ACL set to private
  • Filter \’ninja_forms_uploads_default_region\’ added for the default region for S3 clients

Bugs:

  • Fix uploading of any size file in the background to external services
  • Fix background uploading not working if memory_limit defined in Gigabytes

3.3.5 (25 June 2020)

New:

  • Setting to make the URLs to files upload to external service providers accessible to non-logged in users

Changes:

  • Updated jQuery File Upload library to v10.30.1.

Bugs:

  • Fix Google Drive file preview URL not working
  • Fix cancel button doesn\’t show to allow clearing upload errors
  • Fix files with non UTF8 characters not reloaded when using the Save Progress addon

3.3.4 (10 June 2020)

Bugs:

  • Fix mergetags variations not rendering the correct value
  • Fix external file url redirecting to site admin home if the service is no longer connected

3.3.3 (26 May 2020)

New:

  • Button to cancel a file upload, or clear an error after a failed upload

Bugs:

  • File upload links being stripped from emails and success messages
  • Fatal error when uploading multiple files to Google Drive and renaming the file names
  • Required field validation error shows when the \’Select Files\’ button clicked
  • Missing file upload when submitting a form that had previously been saved with the Save Progress addon
  • Multiple file upload URLs appearing as one large broken link in emails
  • PHP notices about mergetag values when saving a form
  • Browse uploads table losing form filter when paginating or sorting

3.3.2 (23 March 2020)

Bugs:

  • Some large files corrupted when uploading to Dropbox
  • Error not displayed when uploading a file larger than the maximum defined in settings
  • Fix PHP Notice: Undefined variable: mime_types_whitelist

Changes:

  • Added new filter \’ninja_forms_uploads_tmp_dir\’ to change the temp directory for uploads
  • Added external service $slug parameter to the filter \’ninja_forms_uploads_should_background_upload\’

3.3.1 (9 March 2020)

Bugs:

  • Security flaw which could allow files with blacklisted file extensions to be uploaded

3.3.0 (2 March 2020)

New:

  • Files larger than the server maximum upload size can now be uploaded
  • Large files uploaded to external services in the background, no longer holding up form submission

Bugs:

  • Uploads and External settings page can\’t be saved due to missing nonce
  • File uploaded to multiple external services being uploaded with the incorrect timestamp filename prefix

3.2.6 (21 January 2020)

Bugs:

  • Unknown upload error when the same form appears twice on a page

3.2.5 (16 January 2020)

Bugs:

  • Fatal error: Cannot redeclare pcntl_signal() on some install

3.2.4 (9 January 2020)

Bugs:

  • Select File button not working on Internet Explorer 11 still

3.2.3 (8 January 2020)

Changes:

  • Added new filter \’ninja_forms_uploads_s3_acl\’ to change the Amazon S3 ACL to \’private\’ when uploading to buckets that are set as private

Bugs:

  • Drag and dropping files when using multiple File Upload fields results in uploads to all fields
  • Google Drive connection getting disconnected incorrectly for some users
  • Select File button not working on Internet Explorer 11
  • Fatal errors on installs using PHP less than 7.1
  • Translatable string containing file size data could not be translated

3.2.2 (28 November 2019)

Bugs:

  • Fatal error on some installs running plugins with the Google API SDK

3.2.1 (25 November 2019)

Bugs:

  • Fatal error Uncaught Error: Call to undefined method ComposerAutoloadClassLoader::setClassMapAuthoritative()
  • Fatal error intermittently after connecting to Google Drive
  • Google Drive account disconnect when issue connecting to API

3.2.0 (5 November 2019)

New:

  • You can now use mergetags in the \’Rename Uploaded File\’ field setting
  • Different mergetags for File Upload fields can now be selected, eg. {field:my_field_key:link}
  • New mergetag for the filename of the file, eg. {field:my_field_key:filename}
  • New mergetags for when the file has been added to the media library, eg. {field:my_field_key:attachment_url}, {field:my_field_key:attachment_embed}

Changes:

  • Ability to set Amazon key and secret and other settings as constants: \’NF_FU_AMAZON_S3_ACCESS_KEY\’ and \’NF_FU_AMAZON_S3_SECRET_KEY\’

Bugs:

  • Nonce error when submitting a form on a page that has been cached
  • Fatal error caused when running UpdraftPlus or BackupBuddy plugin

3.1.2 (17 October 2019)

Changes:

  • Use the external service name not the slug in the uploads browser table
  • Make the external service \’Connect\’ button stand out from the \’Disconnect\’ button

Bugs:

  • Fatal error caused when running the EDD Amazon S3 plugin
  • Mergetag output blank when running the Conditional Logic plugin

3.1.1 (10 October 2019)

Bugs:

  • Fatal error when uploading to Dropbox on installs with legacy Dropbox API tokens
  • Fatal error due to memory exhaustion on some installs due to large Google SDK

3.1.0 (8 October 2019)

New:

  • Google Drive support
  • Full integration with Layout & Styles addon
  • Adds support for File Upload field to the realistic form builder
  • New minimum file size field setting
  • Add \’View Submission\’ link for each upload in the \’Browse Uploads\’ screen

Bugs:

  • Fixes mergetag string literal sent to actions when there are no files uploaded
  • Fixes Undefined index: type PHP notice due to mergetag code
  • Fixes links showing in submission table and \’Browse Uploads\’ screen for files that didn\’t exist

3.0.27 (1 July 2019)

Changes:

  • New filter: \’ninja_forms_upload_mime_types_whitelist\’ to amend the mime types global upload whitelist
  • New filter: \’ninja_forms_upload_check_mime_types_whitelist\’ to stop checking the global mime types whitelist
  • New translation pack for Polish, props DreadsSupp

3.0.26 (15 May 2019)

Bugs:

  • Fixes \’No field ID supplied\’ error message when post_max_size PHP config value is lower than upload_max_filesize.

3.0.25 (8 May 2019)

Bugs:

  • Nonce errors should no longer occur when multiple instances of the same form exist on a page.

3.0.24 (22 April 2019)

Bugs:

  • Fixes the bypassing of a required file upload field if a previously uploaded file is deleted.

Changes:

  • Updated jQuery File Upload library to v9.30.0.

3.0.23 (11 April 2019)

Bugs:

  • Critical security flaws which could allow file extensions to be changed and files to be traversed (Props Jasper Weijts, Onvio)

3.0.22 (30 November 2018)

Changes:

  • Attachment ID mergetag variation to be used when saving file upload to the media library, eg. {field:file_upload_22:attachment_id}

3.0.21 (29 November 2018)

Bugs:

  • Form cannot be submitted if there was an error uploading a file, even after deleting it
  • PHP Warning: count(): Parameter must be an array or an object that implements Countable

3.0.20 (11 October 2018)

Bugs:

  • Critical security flaw which could allow file extensions to be changed and files to be executed (Props Frank Spierings from Warpnet)
  • Non UTF8 characters in the %filename% tag
  • Embed mergetag variant not working if install was without Conditional Logic addon
  • Animate CSS class clashing with other theme and plugin styles

3.0.19 (26 April 2018)

Changes:

  • Compatibility with form templates in Ninja Forms 3.2.23
  • Use file extension whitelist to restrict the file upload select box

Bugs:

  • upload_max_filesize php.ini config defined in units other than MB not working
  • Dropbox connection removed if site cannot access Dropbox temporarily

3.0.18 (27 March 2018)

Changes:

  • Compatibility with Auto complete support in Ninja Forms 3.2.17

Bugs:

  • Fatal error when Amazon Web Services plugin installed but not activated
  • Timeout when adding new forms on certain installs

3.0.17 (18 November 2017)

Bugs:

  • Dropbox connection redirect 404ing on some installs
  • Only the first \’Select Files\’ button text is used for multiple fields

Changes:

  • Filter added for the cron time when deleting the temp file
  • Filter added for the default \’Select Files\’ button text

3.0.16 (13 October 2017)

Bugs:

  • Fixed a bug that was preventing uploads from being re-saved when using the Save Progress add-on.

3.0.15 (1 Aug 2017)

Bugs:

  • Fix external URLs not sent to Zapier when using Zapier addon
  • Fix field max upload size bigger than server limit

3.0.14 (11 Aug 2017)

Bugs:

  • Fix Dropbox file uploaded with full server path when having no custom upload path

3.0.13 (10 Aug 2017)

Features:

  • German translation file, thanks @christophrado!

Changes:

  • Added original filename to ninja_forms_uploads_[external service]_filename filter
  • Added more information to the help bubble for file renames to describe creating directories

Bugs:

  • Fix isset weirdness when checking for old NF format of file value
  • Fix method not exists when creating table if using older version of NF core.
  • Fix custom upload path not replacing %field_ shortcodes
  • Fix custom upload path not working for external (Dropbox/S3) file paths
  • Fix %formtitle% not being replaced in field rename if no custom upload path

3.0.12 (28 July 2017)

Bugs:

  • Dropbox uploads failing when custom path defined

3.0.11 (25 July 2017)

Bugs:

  • File Uploads table not created on fresh installation
  • jQuery File Upload JavaScript files clashed with Calendarize plugin

3.0.10 (12 July 2017)

Bugs:

  • File Uploads should work properly with non-standard WordPress databse prefixes.

3.0.9 (06 July 2017)

Bugs:

  • File Uploads should now work properly with Multi-Part Forms.
  • Fixed a bug with non-English characters and file name encoding.

3.0.8 ( 26 June 2017)

Changes:

  • Supports Dropbox API v2
  • Custom name of file now supports changing path with field specific data

Bugs:

  • File appeared even if upload failed

3.0.7 ( 5 June 2017)

Bugs:

  • Amazon S3 uploads unable to use bucket in newer regions
  • File not deleted from server when File Upload deleted in admin
  • All File Uploads fields on form used the same nonce
  • NF 2.9 submissions not displaying in admin
  • File Upload field CSS too generic causing clashes with themes
  • PHP notice on uploads table when submission from non-logged in user
  • All Fields mergetag not using external URL
  • Missing mergetag variations used for Post Creation
  • Similar file extensions allowed even when not on file type whitelist for field

3.0.6 (12 April 2017)

Bugs:

  • Fixed the description text for custom file upload paths.
  • Fixed PHP warnings related to uploading a file to a remote server.
  • Links to uploaded files should now always show properly.
  • Fixed a bug that could cause unexpected output when displaying a form.

3.0.5 (07 December 2016)

Bugs:

  • Fixed a bug that could cause file upload fields to fail with Ninja Forms versions > 3.0.17.

3.0.4 (3 November 2016)

Bugs:

  • Fixed a bug with the Max File Upload Size setting.
  • Whitelisting file types should now work as explained in the help text.
  • File names can now be based upon the values of other fields using merge tags.

Changes:

  • Added missing help text to the admin.

3.0.3 (28 September 2016)

Bugs:

  • File Uploads should now show in Conditional Logic conditions.

3.0.2 (09 September 2016)

  • Update to 3.0.2

Bugs:

  • Fixed SQL format that breaks dbdelta.
  • Fixed Dropbox case sensitive issues.
  • Fixed Multiple file selection bug.
  • Fixed a bug with uploading .jpg files.

3.0.1 (06 September 2016)

  • Updated with Ninja Forms v3.x compatibility

3.0 (06 September 2016)

  • Updated with Ninja Forms v3.x compatibility
  • Deprecated Ninja Forms v2.9.x compatible code

1.4.9 (09 May 2016)

Bugs:

  • Fixed a bug where duplicate file names could cause the extension to be changed. Credit to \”fruh of citadelo\” for reporting the security vulnerability.

1.4.8 (29 March 2016)

Bugs:

  • Fixed a bug with Dropbox that could cause uploading to Dropbox to fail.

1.4.7 (20 September 2015)

Bugs:

  • Fixed a bug related to buckets in Amazon S3.
  • Improved how URLs are handled when saving submissions.

1.4.6 (24 August 2015)

Bugs:

  • Fixed an issue with connecting to Amazon accounts.
  • Fixed several PHP notices that appeared on the uploads settings page.

1.4.5 (12 May 2015)

Bugs:

  • Featured images in the Post Creation extension should now function properly.
  • Save Progress extension tables should now show File Upload fields properly.

1.4.4 (26 March 2015)

Bugs:

  • Multiple file uploads should work properly with external services.
  • Fixed several PHP notices.

1.4.3 (12 January 2015)

Bugs:

  • Fixed a bug that could cause Dropbox to disconnect.
  • Fixed a bug with multi-file uploads that could cause the wrong URL to be stored in the file uploads table.
  • Fixed a PHP notice.

1.4.2 (9 December 2014)

Bugs:

  • Fixed a bug with PHP v5.6 and Dropbox uploads.
  • Fixed a bug that caused file renaming to work incorrectly.

Changes:

  • Added a new upload location of none, where files get removed after upload.

1.4.1 (17 November 2014)

Bugs

  • Fixed a bug caused by a bad commit in the previous version.

1.4 (17 November 2014)

Bugs:

  • Fixed two PHP notices.

Changes:

  • Added filter for filename $file_name = apply_filters( \’nf_fu_filename\’ , $filename );
  • The maximum file upload size can now not exceed the server PHP setting for max file uploads.

1.3.8 (15 September 2014 )

Changes:

  • File Uploads should now be compatible with Ninja Forms version 2.8 and the new notification system.
  • Performance should be noticeably increased.

1.3.7 (12 August 2014 )

Bugs:

  • Fixed a bug with viewing files in the edit sub page.

1.3.6 (12 August 2014)

Bugs:

  • Fixing a bug with file exports and version 2.7+ of Ninja Forms.
  • Fixed translation issues.

Changes:

  • Added new .pot file.

1.3.5 (24 July 2014)

Changes:

  • Compatibility with Ninja Forms 2.7.

1.3.4

Bugs:

  • Making sure the external upload doesn\’t fire if there is no file uploaded

1.3.3

Bugs:

  • Fixed a bug with Dropbox that could cause file uploads to be sluggish.
  • is_dir() and mkdir() warnings should be cleared up.
  • Multi-file upload fields should now clear correctly when a form is submitted.

1.3.2

Bugs:

  • Fixed a bug that could cause the plugin not to activate on some systems.

1.3.1

Bugs:

  • The extension should now properly activate on all PHP versions.

1.3

Features:

  • You can now store uploaded files in Dropbox or Amazon S3! Simply select the storage location on a per-upload-field basis.

Bugs:

  • Fixed a PHP notice.
  • Fixed a bug that could cause some installations to lose the ninja-forms/tmp/ directory.

1.2

Bugs:

  • Fixed a bug that prevented required file uploads from being validated when using AJAX submissions.
  • Fixed some php notices.

Changes:

  • Added support for the new Ninja Forms loading class.
  • Editing a submission from the wp-admin that includes a file will now show a link to that file instead of just the filename.

1.1

Changes:

  • The format of date searching in the Browse Files tab will now be based upon the date format in Plugin Settings. i.e. you can now search dd/mm/yyyy.
  • Added the option to name a directory/file with %userid%.

Bugs:

  • Fixed a bug that caused file upload fields to load multiple instances or open with pre-filled, incorrect data.

1.0.11

Changes:

  • Added a filter so that when a user uploads a file, they don\’t see the directory to which it was uploaded in their email.

1.0.10

Changes:

  • Changed the license and auto-update system to the one available in Ninja Forms 2.2.47.

1.0.9

Bugs:

  • Fixed a bug that could cause files to be added to the media library twice when used with the Post Creation extension.

1.0.8

Changes:

  • Changed references to wpninjas.com to the new ninjaforms.com.

1.0.7

Bugs:

  • Fixed a bug that prevented files from being emailed as attachments in multi-part forms.

1.0.6

Changes:

  • Updates for compatibility with WordPress 3.6

1.0.5

Bugs:

  • Fixed a bug that prevented Uploads from working properly with AJAX forms.
  • Fixed a bug that prevented Uploads from working properly when they were set to required.

1.0.4

Changes:

  • Added a filter so that File Uploads will work properly with the confirmation page option of Multi-Part Forms.

1.0.3

Changes:

  • Changed the way that file uploads with duplicate names are handled. In previous versions, the new file would simply replace the older file with the same name; now, if a file already exists with the same name as an upload, the upload is renamed with a sequential number. e.g. my-file.jpg -> my-file-001.jpg -> my-file-002.jpg -> etc.
  • Added an option to add files to the WordPress Media Library. On each file upload field, you\’ll find this new option.
  • Added three new file renaming options: %displayname%, %firstname%, %lastname%. Each of these will be replaced with the appropriate user information.
  • Added a new filter named: ninja_forms_uploads_dir. This filter can be used to modify the location Ninja Forms uploads files.

Bugs:

  • Fixed a bug that could cause some files from uploading properly.

1.0.2

Changes:

  • Added a new option to the [ninja_forms_field id=] shortcode. You can now use [ninja_forms_field id=2 method=url]. This will return just the url of the file. For example, you can now do something like this: .

1.0.1

Changes:

  • Modified the way that the pre-processing is handled for more effeciency.

1.0

Bugs:

  • Fixed a bug that prevented files from being replaced on the backend.

0.9

Bugs:

  • Fixed a bug that prevented files from being replaced when editing user submissions.

0.8

Features:

  • Added the ability to search for file uploads by User ID, User email, or User login.

0.7

  • Updated code formatting.

0.6

  • Fixed a bug that was causing the new [ninja_forms_field id=3] shortcode to fail when used in conjunction with the Uploads Extension.

0.5

  • Changed the upload directory to the built-in WordPress uploads directory. This should help limit the cases of users not being able to upload files because of directory restrictions. Old files have not been moved over because it would be impossible to correctly fix links to new locations.
  • Fixed a bug that was causing some users to lose their upload record when they deactivated and reactivated the plugin.
  • Errors should now show properly for files that are over the file size limit set in the plugin settings.

0.4

  • Various bug fixes including:
  • A bug that prevented files from being moved to the proper directory.
  • A bug that prevented the \”update file\” link from working on pages that already had a file uploaded.
  • A bug that prevented the \”featured image\” functionality from working properly.
  • Added a new setting to the upload settings page for file upload URLs.

0.3

  • Various bug fixes.

0.2

  • Various bug fixes.
  • Changed the way that javascript and css files are loaded in extensions.

Ninja Forms File Uploads logo
$49
$72
$99