Ninja Forms +
File Uploads

Add file upload fields to save files to your server or send them to Dropbox or Amazon S3 securely.

The ability to collect data from your visitors is an important tool for any site owner. Sometimes the information you need comes in the form of images, videos, or documents like PDFs, Word or Excel files, etc.

These situations require the ability to upload those files to your server or another location and File Uploads does just that.

File Uploads don’t have to be complicated

Uploading files comes with a variety of concerns ranging from issues of maintainability to security. File Uploads for Ninja Forms addresses these challenges in the following ways:

  • Sets a permanent or dynamic upload directory. .
  • Rename uploads based on date, username, or field data.
  • Browse, view, filter, and delete uploads from within your WordPress admin.
  • Email uploads as attachments and/or save them to your server, Dropbox, or Amazon S3..
  • Restrict file types and maximum upload size.
  • Allow users to add a “Featured Image” to posts when using the Post Creation or Front End Editor extensions.

Who should use File Uploads

Anyone who wants to add the ability to upload reasonably sized files along with a forms submission safely and securely.

Frequently Asked Questions

How large can my uploaded files be?

Any size as long as your server can support it. The settings in this extension will NOT override your php.ini settings, for example.

Can I upload multiple files in one form?

Yes, you can add multiple upload fields or upload multiple files in a single field. There is not an option to bulk select files at this time however.

Does my upload go to my server at all even if I set it to upload to Dropbox or S3?

Yes, the file is first uploaded to your server in a tmp directory, THEN sent to DropBox or S3 as a security measure. After that the file should be deleted from your tmp directory.


3.0.19 (26 April 2018)


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


  • 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)


  • Compatibility with Auto complete support in Ninja Forms 3.2.17


  • 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)


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


  • 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)


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

3.0.15 (1 Aug 2017)


  • 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)


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

3.0.13 (10 Aug 2017)


  • German translation file, thanks @christophrado!


  • 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


  • 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)


  • Dropbox uploads failing when custom path defined

3.0.11 (25 July 2017)


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

3.0.10 (12 July 2017)


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

3.0.9 (06 July 2017)


  • 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)


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


  • File appeared even if upload failed

3.0.7 ( 5 June 2017)


  • 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)


  • 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)


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

3.0.4 (3 November 2016)


  • 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.


  • Added missing help text to the admin.

3.0.3 (28 September 2016)


  • File Uploads should now show in Conditional Logic conditions.

3.0.2 (09 September 2016)

  • Update to 3.0.2


  • 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)


  • 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)


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

1.4.7 (20 September 2015)


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

1.4.6 (24 August 2015)


  • 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)


  • 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)


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

1.4.3 (12 January 2015)


  • 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)


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


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

1.4.1 (17 November 2014)


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

1.4 (17 November 2014)


  • Fixed two PHP notices.


  • 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 )


  • 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 )


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

1.3.6 (12 August 2014)


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


  • Added new .pot file.

1.3.5 (24 July 2014)


  • Compatibility with Ninja Forms 2.7.



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



  • 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.



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



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



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


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



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


  • 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.



  • 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%.


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



  • 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.



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



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



  • Changed references to to the new



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



  • Updates for compatibility with WordPress 3.6



  • 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.



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



  • 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.


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



  • 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: .



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



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



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



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


  • Updated code formatting.


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


  • 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.


  • 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.


  • Various bug fixes.


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