{"id":346264,"date":"2026-07-29T08:43:48","date_gmt":"2026-07-29T08:43:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/multimage-image-uploads-for-wpforms\/"},"modified":"2026-07-29T08:43:23","modified_gmt":"2026-07-29T08:43:23","slug":"multimage-image-uploads-for-wpforms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/multimage-image-uploads-for-wpforms\/","author":20545557,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Multimage \u2013 Image Uploads for WPForms","header_author":"Akshat Saxena","header_description":"Adds a Multi Image Upload field to the WPForms builder with instant AJAX pre-upload, per-field limits, and notification email attachments.","assets_banners_color":"a27af0","last_updated":"2026-07-29 08:43:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"developerakshat","date":"2026-07-29 08:43:23"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3626909,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3626909,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3626909,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3626909,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3626909,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3626909,"resolution":"2","location":"assets","locale":"","width":1600,"height":820},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3626909,"resolution":"3","location":"assets","locale":"","width":1600,"height":825},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3626909,"resolution":"4","location":"assets","locale":"","width":1600,"height":804}},"screenshots":{"1":"The Multi Image Upload field on a live WPForms form, ready for visitors to attach images.","2":"The Multi Image Upload field available in the WPForms builder's Standard Fields panel, added to a form.","3":"Field settings: Max File Uploads, Allowed File Extensions, and Max File Size (MB).","4":"General field settings: Label, Description, and Required toggle."}},"plugin_section":[],"plugin_tags":[5887,1722,273669,273670,130711],"plugin_category":[],"plugin_contributors":[273671],"plugin_business_model":[],"class_list":["post-346264","plugin","type-plugin","status-publish","hentry","plugin_tags-file-upload","plugin_tags-image-upload","plugin_tags-multiple-files","plugin_tags-photo-upload","plugin_tags-wpforms","plugin_contributors-developerakshat","plugin_committers-developerakshat"],"banners":{"banner":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/banner-772x250.png?rev=3626909","banner_2x":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/banner-1544x500.png?rev=3626909","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/icon-128x128.png?rev=3626909","icon_2x":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/icon-256x256.png?rev=3626909","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/screenshot-1.png?rev=3626909","caption":"The Multi Image Upload field on a live WPForms form, ready for visitors to attach images."},{"src":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/screenshot-2.png?rev=3626909","caption":"The Multi Image Upload field available in the WPForms builder's Standard Fields panel, added to a form."},{"src":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/screenshot-3.png?rev=3626909","caption":"Field settings: Max File Uploads, Allowed File Extensions, and Max File Size (MB)."},{"src":"https:\/\/ps.w.org\/multimage-image-uploads-for-wpforms\/assets\/screenshot-4.png?rev=3626909","caption":"General field settings: Label, Description, and Required toggle."}],"raw_content":"<!--section=description-->\n<p>Multimage adds a new <strong>Multi Image Upload<\/strong> field to the WPForms form builder \u2014 including WPForms Lite \u2014 letting visitors attach multiple photos or images to a single form submission.<\/p>\n\n<blockquote>\n  <p>This is an independent, third-party add-on. It is not affiliated with, endorsed by, or sponsored by WPForms or Awesome Motive, Inc. \"WPForms\" is a trademark of its respective owner and is used here only to describe compatibility.<\/p>\n<\/blockquote>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>New \"Multi Image Upload\" field in the builder \u2014 drag into any form<\/li>\n<li>Works with <strong>WPForms Lite<\/strong> (no Pro required)<\/li>\n<li>Works with WPForms AJAX submission <strong>on or off<\/strong> \u2014 images pre-upload instantly on selection, so nothing is lost to form serialization<\/li>\n<li>Per-field settings: Max File Uploads, Allowed File Extensions, Max File Size (MB)<\/li>\n<li>Selected images listed with individual remove buttons before submit<\/li>\n<li>Image URLs included in the <code>{all_fields}<\/code> email template<\/li>\n<li>Uploaded images attached to notification emails<\/li>\n<li>Server-side validation: content-based MIME detection, extension whitelist, size limits<\/li>\n<li>Automatic cleanup of abandoned temporary uploads after 24 hours<\/li>\n<li>Compatible with themes using JCF-style form styling libraries<\/li>\n<\/ul>\n\n<p><strong>How it works<\/strong><\/p>\n\n<p>When a visitor selects images, each file is uploaded immediately to a temporary folder through a secured AJAX endpoint. Lightweight tokens travel with the form submission, and on success the files are moved into the standard WordPress uploads directory.<\/p>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>WPForms Lite or WPForms Pro<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin stores images uploaded by visitors on your server, in the WordPress uploads directory. Uploaded images may be attached to notification emails you configured in WPForms. No data is sent to any external service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>multimage-image-uploads-for-wpforms<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress \"Add New Plugin\" screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Edit or create a WPForms form and drag the <strong>Multi Image Upload<\/strong> field into the form from the Fields panel.<\/li>\n<li>Configure the field's Max File Uploads, Allowed File Extensions, and Max File Size options in the field settings panel.<\/li>\n<li>Save and publish the form.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20wpforms%20lite%3F\"><h3>Does this work with WPForms Lite?<\/h3><\/dt>\n<dd><p>Yes. That is the primary use case \u2014 Lite has no file upload field, and this plugin adds a multi-image one.<\/p><\/dd>\n<dt id=\"where%20are%20the%20uploaded%20images%20stored%3F\"><h3>Where are the uploaded images stored?<\/h3><\/dt>\n<dd><p>In your standard WordPress uploads directory (wp-content\/uploads\/year\/month), after a successful form submission. Before submission they are held in a temporary folder that is cleaned automatically.<\/p><\/dd>\n<dt id=\"can%20users%20upload%20non-image%20files%3F\"><h3>Can users upload non-image files?<\/h3><\/dt>\n<dd><p>No. The upload endpoint enforces an image-only whitelist (jpg, jpeg, png, gif, webp) with content-based MIME detection, regardless of field settings.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20ajax%20form%20submission%20enabled%3F\"><h3>Does it work with AJAX form submission enabled?<\/h3><\/dt>\n<dd><p>Yes. Images are pre-uploaded on selection, so the setting does not matter.<\/p><\/dd>\n<dt id=\"how%20many%20images%20can%20a%20visitor%20upload%3F\"><h3>How many images can a visitor upload?<\/h3><\/dt>\n<dd><p>Whatever you set for Max File Uploads on that field, per form. Use separate Multi Image Upload fields with different limits if you need a photo field and a gallery field on the same form.<\/p><\/dd>\n<dt id=\"do%20the%20uploaded%20images%20appear%20in%20the%20wordpress%20media%20library%3F\"><h3>Do the uploaded images appear in the WordPress Media Library?<\/h3><\/dt>\n<dd><p>No. Images are saved to your uploads directory but are not added as Media Library attachments, so visitor submissions never clutter your library.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20for%20a%20photo%20gallery%20or%20portfolio%20submission%20form%3F\"><h3>Can I use this for a photo gallery or portfolio submission form?<\/h3><\/dt>\n<dd><p>Yes. Any form that needs visitors to submit multiple photos \u2014 galleries, portfolios, applications, support requests \u2014 can use the Multi Image Upload field.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Add multiple image uploads to WPForms \u2014 including WPForms Lite \u2014 with instant AJAX uploads, per-field limits, and email attachments.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346264"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/developerakshat"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346264"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346264"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346264"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346264"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346264"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}