Iptanus File Upload

Front-end file uploads for WordPress

Let visitors upload files from any page, post or sidebar widget — into your Media library, or straight to Dropbox, Google Drive, OneDrive, Amazon S3 or an FTP server.

Iptanus File Upload

What it does

A form on any page

One shortcode, or a Gutenberg block. Add your own fields, filter by size, extension or user role, and run several forms in the same post.

Files go where you need

The Media library, a NextGEN gallery, an FTP server or a cloud account. Large files upload in chunks, past the server’s own limit.

You see what arrives

A file browser and activity log in the dashboard, email notifications on upload, and a viewer your logged-in users can see too.

What it looks like

The upload form, as a visitor sees it
The Iptanus File Upload form as a visitor sees it: a file field with Select Files and Upload Files buttons, a subfolder chooser, a consent question, and a progress bar
The default form. Fields, buttons, labels and colours are all configurable.

Set-up and reference

Install it
  1. Install the plugin with the WordPress auto-installer, or download the .zip file from wordpress.org and install it from the Plugins section of your Dashboard.Or copy the wordpress_file_upload directory into the wp-content/plugins directory of your site yourself.
  2. Activate the plugin from the Plugins section of your Dashboard.
Put it on a page
  1. For an upload form, go to Dashboard / Settings / Iptanus File Upload and follow the instructions in Uploader Instances.[wordpress_file_upload]Or put the shortcode straight into the contents of any page.
  2. For a list of uploaded files, follow the instructions in Uploaded File List Instances instead.[wordpress_file_upload_browser]Or put the shortcode straight into the contents of any page.
Once it is running
  1. Open the page in your browser and you will see the upload form, or the list of files.
  2. View what has arrived from the Uploaded Files item in the Dashboard menu.
  3. Change the upload directory, or any other setting, from the small edit button at the top-left corner of the upload form.It opens the plugin options in a new window. If nothing appears, allow pop-up windows for your site.
  4. Full documentation of the plugin options is in the Options section below.

A handy Getting Started guide can be found here.

You can download the free version of the plugin by pressing the FREE version button below, or you can go for the professional version that offers multiple file uploads, captcha and much more by pressing the PRO version button. Professional licences are one-off, and their updates never expire.

Free versionPro version

The plugin offers many options for the two shortcodes, so that they can be tailored to any requirements. These options are available in the following links:

From version 2.4.1 filters and actions are supported in order to allow programmers to integrate Iptanus File Upload plugin with other plugins, extend its capabilities or perform advanced operations.

A detailed list of the plugin’s filters and actions can be found in this article.

The plugin is translated in the following languages:

Portuguese
kindly provided by Rui Alao
German
French
kindly provided by Thomas Bastide of omicronn.fr
Serbian
kindly provided by Andrijana Nikolic of webhostinggeeks.com
Dutch
kindly provided by Ruben Heynderycx
Chinese
kindly provided by Yingjun Li
Spanish
kindly provided by Marton
Italian
kindly provided by Enrico Marcolini marcuz.it
Polish
Swedish
kindly provided by Leif Persson marcuz.it
Persian
kindly provided by Shahriyar Modami chabokgroup.com
Greek

Translations in other languages are more than welcome!.

The plugin requires to have Javascript enabled in your browser. For Internet Explorer you also need to have Active-X enabled.

Please note that old desktop browsers or mobile browsers may not support all of the above features. In order to get full functionality use the latest versions of browsers, supporting HTML5, AJAX and CSS3.

You can read the Privacy Policy and Terms of Service of the plugin in the following links:

You can also read the Google Drive Privacy Policy and Terms of Service of the plugin in the following links:

Release notes

158 versions · 872 changes

What changed in each version. Grouped by major release — these entries carry no dates.

17 releases · 5.0.0 – 5.2.4 10 carry a security fix
  • Fixed a security issue, reported by peppa through Patchstack, that bypassed the HTML-content upload protection added in version 5.2.2. A file beginning with a vertical-tab character, or with an incomplete tag name such as <bx>, passed the check while browsers still read it as HTML. The detection now reproduces the sniffing rules browsers use, so files of that shape are rejected.
  • Fixed a security issue, reported by netwind through Patchstack, that bypassed the HTML-content upload protection added in version 5.2.2. The check could be evaded when the opening HTML tag ended with a character other than a space, such as a slash; files of that shape are now reliably detected and rejected.
  • Added bulk management of admin notifications across every page, so all notifications matching the active filter can be marked read, marked unread, or deleted in a single action.
  • Fixed a security issue, reported by fcc through Patchstack, where a file containing HTML but detected as a non-text type could be uploaded and then run as a script in the browser. Uploads whose leading bytes would be interpreted as HTML are now rejected, whatever their detected type.
  • Fixed a critical error that could occur when deleting admin notifications in bulk, or when filtering them by a single status or category.
  • Fixed a security issue, reported by Vidhi Parmar, where a crafted value of an upload form parameter could be interpreted as a regular expression instead of a literal upload identifier.
  • Upload error responses no longer include internal session or request details unless debug mode is enabled.
  • Fixed an SQL injection security issue reported through Patchstack, affecting an upload identifier that was not fully sanitized.
  • Updated all bundled libraries of the plugin and of the cloud extensions to their current versions.
  • Bundled libraries are now under a plugin-specific namespace, so they can no longer conflict with libraries bundled by other plugins.
  • Extensions are now published in variants built for different PHP versions, and each site receives the variant matching its own PHP version. Pro
  • Extensions are no longer loaded if the site's PHP version is lower than the one they require. Pro
  • Removed the Facebook SDK, which was bundled but never used. Pro
  • Messenger notifications now use the Facebook Graph API version defined in the plugin's settings, instead of a hardcoded 2018 version. Pro
  • Fixed Dropbox authorization failing silently. Pro
  • Corrected the error reported when Dropbox is not activated. Pro
  • Google Drive activation now reports a clear error when its authorization configuration cannot be retrieved, instead of a blank page. Pro
  • Fixed uploading files to a NextGEN Gallery, which stopped working with recent versions of NextGEN Gallery. Pro
  • The upload details page linked from Messenger notifications now works when WordPress is installed in a subdirectory, and is displayed within the site's theme instead of as plain text. Pro
  • Fixed a fatal error on PHP 8 and later caused by an unquoted internal directory reference in the Dropbox, Facebook, NextGEN Gallery and Elementor extensions. Pro
  • Fixed two functions that would stop working in PHP 9. Pro
  • Fixed a warning where, after the libraries were placed under their own namespace, the minifier still referred to one of its own classes by its former name. Pro
  • The plugin now rechecks its license when the server's PHP version changes. Pro
  • The upload path setting now notes that cloud storage destinations exist in the Professional version; the note can be dismissed and does not return.
  • Corrected outdated links and information in the plugin's documentation.
  • Fixed bug where emails could not be sent after the release of the previous version.
  • Verified compatibility with latest 7.0 WordPress version.
  • Added uploadid length check in wfu_ajax_action_send_email_notification().
  • Added wfu_params_*, wfu_gst_* and wfu_userstate_* in periodical cleanup.
  • Added Transient Options section in Maintenance Actions tab.
  • Fixed SQL injection issue CVSS 9.3 from Patchstack.
  • Fixed File Overwrite Race Condition when uploading files with the same filename concurrently.
  • Verified compatibility with latest 6.9 WordPress version.
  • Fixed bug where a file could not be downloaded from Uploaded Files Dashboard menu.
  • Fixed double-escaped HTML code of text when Pro version is deactivated. Pro
  • Added support for FTP over TLS (FTPS) uploads.
  • Fixed bug where the visual editor of the file viewer could not be invoked when there was no upload form on the same page. Pro
  • Fixed bug where alt text and description in NGG image was not stored because NGG modified its API. Pro
  • Fixed bug where the visual editor threw warnings for not finding personaldata when Personal Data were deactivated from the plugin's Settings in Dashboard.
  • Fixed bug where a fatal error was thrown when updating the Pro version of the plugin and the extensions had to be reloaded. Pro
  • Fixed bug where Link and Remotelink columns showed HTML code instead of links, due to excessive escaping. Pro
  • Modified Messenger activation workflow due to withdrawal of Send To Messenger plugin from Meta. Pro
  • Corrected bug where the upload form visual editor was not opening when Material UI theme was active.
  • Corrected bug where notification emails were not sent when Material UI theme was active.
  • Updated vendor libraries.
  • Removal of Post Method setting from free version.
  • Removal of curl_exec, file_get_contents and sockets from wfu_get_request() and wfu_post_request() of free version.
  • Improvements on how AJAX endpoint is provided.
  • Corrections to "Requires at least" value.
  • Replacement of eval() in minification function.
  • Corrected warning where translatable constants where loaded before the plugin textdomain was loaded.
  • Further security improvements for compliance with wordpress.org.
  • Added translation for all backend of the plugin.
  • Modified plugin code so that all echoed variables to HTML are escaped.
  • Modified code so that all input is sanitized, including all $_SERVER, $_COOKIE and $_SESSION input.
  • Plugin name changed to Iptanus File Upload.
80 releases · 4.0.0 – 4.25.3 21 carry a security fix
                                                                                                                                                                  32 releases · 3.0.0 – 3.11.0 4 carry a security fix
                                                                                                                                                                                                                                  29 releases · 2.0.1 – 2.7.6 5 carry a security fix

                                                                                                                                                                                                                                                                                            Every version on one page, without JavaScript: the full changelog.

                                                                                                                                                                                                                                                                                            Free and Pro

                                                                                                                                                                                                                                                                                            The free version does not expire and is not a trial. Pro adds nineteen features. The full comparison and the price are on one page.

                                                                                                                                                                                                                                                                                            See pricing

                                                                                                                                                                                                                                                                                            894 discussions

                                                                                                                                                                                                                                                                                            Most recent: October 2025

                                                                                                                                                                                                                                                                                            Questions answered by Iptanus and other users.

                                                                                                                                                                                                                                                                                            1. Bernd Maierhofer

                                                                                                                                                                                                                                                                                              Hi. I purchased the PRO-version. Uploading files has the possibility to put the files in defined subfolders.

                                                                                                                                                                                                                                                                                              How does the Uploaded File List Instance determine which files are to be displayed?
                                                                                                                                                                                                                                                                                              What folder does the Uploaded File List Instances use?
                                                                                                                                                                                                                                                                                              How do I specify, which folder should be displayed initially?
                                                                                                                                                                                                                                                                                              How can I change folders when using the instance?
                                                                                                                                                                                                                                                                                              And is there any possibility to have only the files of the folder to be displayed?

                                                                                                                                                                                                                                                                                              tx for an answer!
                                                                                                                                                                                                                                                                                              Bernd

                                                                                                                                                                                                                                                                                            2. Hi + tx for an answer. I bought the Pro version + have a question:
                                                                                                                                                                                                                                                                                              When uploading it is possible to specify the folder where the files should go to.
                                                                                                                                                                                                                                                                                              For the file browser instance this seems not to be possible. Can I force the browser to use the just uploaded folder only? Or is there any other way to restrict tzhe numbers of files displayed?
                                                                                                                                                                                                                                                                                              Even maintaining the foler structure would be a progress.

                                                                                                                                                                                                                                                                                              tx Bernd

                                                                                                                                                                                                                                                                                              1. Hi Bernt, let me understand your question better. So you want to specify where files will be uploaded? There is an option for this, Upload Path. You can find it by opening the visual editor of the plugin.

                                                                                                                                                                                                                                                                                                Nickolas

                                                                                                                                                                                                                                                                                            3. Hi, I’m using the Pro version and I’m seeing some strange behavior when creating and adding multiple instances to the same page. Our specific scenario is we want a total of 10 files to be uploaded. Three pdfs and seven images all sent together. We’re not using the multiple file select as we’re leading people through the form so we have 10 individual single upload file fields on the page. Here’s some of the larger issues we’re seeing:
                                                                                                                                                                                                                                                                                              1) When creating an instance, it’s requiring me to select a page it’s being added to. When using shortcodes, why is this required? What’s even more odd is that the free version didn’t require it, but the Pro version does. Please consider not requiring this.
                                                                                                                                                                                                                                                                                              2) It seems to me that the shortcode should only be referencing the plugin name and instance ID so any changes that are made to the instance post-launched shouldn’t require a copy/paste back to the page to update. While testing this is a pretty tedious task, especially across 10 instances.
                                                                                                                                                                                                                                                                                              3) When creating instances, it seems to be making double instances with identical information requiring me to delete the duplicate instances.

                                                                                                                                                                                                                                                                                              The plugin will work for our needs but does seem like there are some bugs that needs cleaned up. Unless I’m just not understanding how this is setup and supposed to work.

                                                                                                                                                                                                                                                                                              Thanks for any information you can give.
                                                                                                                                                                                                                                                                                              – Steve

                                                                                                                                                                                                                                                                                              1. Hi, here are some answers:
                                                                                                                                                                                                                                                                                                A plugin instance is the appearance of the shortcode [wordpress_file_upload …] inside a page or post. The plugin searches all appearances of this shortcode inside all posts and pages and presents them in the Uploader Instances table. If you have set 10 instances in a page, then you should see 10 lines in that table. Through this table you can easily edit any of the instances, instead of going to the page and doing it manually. So:

                                                                                                                                                                                                                                                                                                1) Yes an instance is meaningful inside a page or post (or the Pro version can add the plugin’s upload form in a sidebar as a widget). So, you need to select a page or post. The Free version is the same as well.
                                                                                                                                                                                                                                                                                                2) When you make changes to the instance using the visual editor of the plugin, the page is updated as well. If you do not see this, then there is something wrong.
                                                                                                                                                                                                                                                                                                3) Not normal. It shouldn’t happen.

                                                                                                                                                                                                                                                                                                Please check your 10 instances in the page. They should have different uploadid values, so that the plugin can distinguish them. Have you done that?

                                                                                                                                                                                                                                                                                                Regards

                                                                                                                                                                                                                                                                                                Nickolas

                                                                                                                                                                                                                                                                                            Ask a question

                                                                                                                                                                                                                                                                                            Answered by Iptanus, usually within a working day.

                                                                                                                                                                                                                                                                                            Ask a question

                                                                                                                                                                                                                                                                                            This site uses Akismet to reduce spam. Learn how your comment data is processed.

                                                                                                                                                                                                                                                                                            Scroll to Top