{"id":264440,"date":"2026-01-12T08:08:28","date_gmt":"2026-01-12T08:08:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/multi-file-upload-for-contact-form-7\/"},"modified":"2026-01-12T14:57:38","modified_gmt":"2026-01-12T14:57:38","slug":"rapisafe-multi-file-cf7","status":"publish","type":"plugin","link":"https:\/\/is.wordpress.org\/plugins\/rapisafe-multi-file-cf7\/","author":23408152,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.4","stable_tag":"trunk","tested":"6.9.4","requires":"5.4","requires_php":"7.2","requires_plugins":null,"header_name":"RapiSafe - Secure Multi File Upload for Contact Form 7","header_author":"Pietro Raffa","header_description":"Secure multiple file upload field for Contact Form 7.","assets_banners_color":"","last_updated":"2026-01-12 14:57:38","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/donate\/?hosted_button_id=69P5WGMD9CW6E","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":20,"downloads":250,"num_ratings":1,"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":"pietror91","date":"2026-01-12 08:17:48"},"1.0.1":{"tag":"1.0.1","author":"pietror91","date":"2026-01-12 10:13:19"},"1.0.2":{"tag":"1.0.2","author":"pietror91","date":"2026-01-12 10:22:57"},"1.0.3":{"tag":"1.0.3","author":"pietror91","date":"2026-01-12 11:03:58"}},"upgrade_notice":{"1.0.4":"<p>PHP 7.* fix<\/p>","1.0.3":"<p>Fix warning<\/p>","1.0.2":"<p>Fix default settings warning<\/p>","1.0.1":"<p>Fix settings and plugin required files<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3437448,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3437448,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3437448,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3437448,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3437448,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3437448,"resolution":"4","location":"assets","locale":""},"screenshot-5.gif":{"filename":"screenshot-5.gif","revision":3437448,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Tag Generator","2":"Multi File Settings - Style","3":"Multi File Settings - General","4":"Upload Field","5":"Fast Demo"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1152,260,1570,125,259],"plugin_category":[42,50,54],"plugin_contributors":[253788],"plugin_business_model":[],"class_list":["post-264440","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-file","plugin_tags-multiple","plugin_tags-secure","plugin_tags-upload","plugin_category-contact-forms","plugin_category-media","plugin_category-security-and-spam-protection","plugin_contributors-pietror91","plugin_committers-pietror91"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/icon-128x128.png?rev=3437448","icon_2x":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/icon-256x256.png?rev=3437448","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/screenshot-1.png?rev=3437448","caption":"Tag Generator"},{"src":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/screenshot-2.png?rev=3437448","caption":"Multi File Settings - Style"},{"src":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/screenshot-3.png?rev=3437448","caption":"Multi File Settings - General"},{"src":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/screenshot-4.png?rev=3437448","caption":"Upload Field"},{"src":"https:\/\/ps.w.org\/rapisafe-multi-file-cf7\/assets\/screenshot-5.gif?rev=3437448","caption":"Fast Demo"}],"raw_content":"<!--section=description-->\n<p>Take your Contact Form 7 forms to the next level with <strong>RapiSafe - Secure Multi File Upload for Contact Form 7<\/strong>, adding full-featured multi-file upload fields, file limits, ZIP compression, password-protected archives, and more.\nWhether you need simple file uploads or advanced secure ZIP handling, this plugin makes it easy for you and your users.\nIt has <strong>simple, intuitive settings and interfaces<\/strong>\u2014no complex configuration required.<\/p>\n\n<h3>\u2728 Free Features<\/h3>\n\n<ul>\n<li><strong>Multi-file upload fields<\/strong> for Contact Form 7 \u2013 let users upload multiple files easily.<\/li>\n<li><strong>Fully customizable upload button<\/strong>: adjust <strong>colors, size, border radius, icon<\/strong>, with <strong>live preview<\/strong>.<\/li>\n<li><strong>Live preview<\/strong> of uploaded images and PDF files.<\/li>\n<li><strong>Drag &amp; Drop<\/strong> functionality \u2013 users can drag files directly into the upload area.<\/li>\n<li><strong>Set minimum and maximum files<\/strong> per field \u2013 control how many files users can upload.<\/li>\n<li><strong>Maximum file size<\/strong> per file \u2013 prevent oversized uploads.<\/li>\n<li><strong>File type validation<\/strong> \u2013 only allow the file types you want.<\/li>\n<li><strong>Duplicate lock<\/strong> \u2013 prevents users from uploading the same file twice using a <strong>file fingerprint<\/strong> (more accurate than just the filename).<\/li>\n<li><strong>Fast Ajax upload<\/strong> \u2013 files are uploaded in the background without slowing down form submission.<\/li>\n<li><strong>Manage simultaneous uploads<\/strong>: set the <strong>maximum number of files<\/strong> a user can upload at once.<\/li>\n<li><strong>Mail attachments<\/strong> \u2013 send uploaded files as <strong>individual attachments<\/strong> or <strong>compressed ZIP<\/strong>.<\/li>\n<li><strong>No jQuery required<\/strong> \u2013 built with pure JavaScript for maximum compatibility.<\/li>\n<li><strong>Secure preview of uploaded files<\/strong> in a new window.<\/li>\n<li><strong>Compatible with other CF7 addons<\/strong> \u2013 works seamlessly with Submission, DBCF7, and more.<\/li>\n<li><strong>Enhanced security<\/strong> \u2013 uploaded files are <strong>never publicly accessible<\/strong>.\nAll links are protected with <strong>secure tokens<\/strong> and <strong>session validation<\/strong>.<\/li>\n<\/ul>\n\n<p>Uploaded files behave exactly like standard CF7 file uploads\u2014they are removed after form submission.\nIn the <strong>Premium version<\/strong>, files can be saved to the <strong>WordPress Media Library<\/strong> or a <strong>specific server folder<\/strong>.<\/p>\n\n<h3>\ud83d\ude80 Premium Features<\/h3>\n\n<ul>\n<li><strong>Includes all Free features<\/strong><\/li>\n<li><strong>Total upload size limit<\/strong>: restrict the <strong>maximum combined size<\/strong> of all files uploaded across all multi file upload fields.<\/li>\n<li><strong>ZIP password<\/strong> option: protect each compressed zip files with a <strong>password<\/strong>.<\/li>\n<li><strong>Compress all uploaded files<\/strong> into a single ZIP file with optional password.<\/li>\n<li><strong>Provide a secure ZIP download link<\/strong> for every uploaded file field.<\/li>\n<li><strong>Smart email attachment delivery<\/strong>:\n\n<ul>\n<li>If the ZIP file is larger than 25MB, it will not be attached.<\/li>\n<li>Instead, a secure download link is included in the email.<\/li>\n<\/ul><\/li>\n<li><strong>Save uploaded files<\/strong> directly to <strong>WordPress Media Library<\/strong>.<\/li>\n<li><strong>Save uploaded files<\/strong> to a <strong>specific server folder<\/strong>.<\/li>\n<li>Tested with popular CF7 data-saving add-ons like <strong>Submissions<\/strong> and <strong>CFDB7<\/strong>.<\/li>\n<\/ul>\n\n<h3>Independence Notice<\/h3>\n\n<p>This plugin is a fully independent add-on for Contact Form 7.\nIt is <strong>not affiliated with, endorsed by, or officially connected to the developers of Contact Form 7 or any other third-party CF7 add-ons<\/strong>.<\/p>\n\n<h3>Usage \/ Example<\/h3>\n\n<p>Add a multi-file upload field using the shortcode:<\/p>\n\n<p>[multi_file_upload multi_file_upload-903 minFile:1 maxFile:3 maxFileSize:10mb fileTypes:jpeg|png attachmentMode:zip zipPassword:Password]<\/p>\n\n<h3>Available parameters<\/h3>\n\n<ul>\n<li>minFile \u2014 Minimum number of files required<\/li>\n<li>maxFile \u2014 Maximum number of files allowed<\/li>\n<li>maxFileSize \u2014 Maximum file size per file (e.g., 8MB)<\/li>\n<li>fileTypes \u2014 Allowed file types, separated by | (e.g., jpeg|png)<\/li>\n<li>mailBodyMode \u2014 Specifies how information about uploaded files will appear in the email body. You can choose either \"file-list\" or \"zip-secure-link\" (the \"zip-secure-link\" option is available in the Premium version only). To include this information in your email, insert the shortcode tag within the Body section on the Mail tab.<\/li>\n<li>attachmentMode \u2014 Upload mode: choose 'files' or 'zip'. To include uploaded files in emails, enter the shortcode tag in the \"Mail\" tab under the \"Attachment\" field.<\/li>\n<li>zipPassword \u2014 Optional password for ZIP file (only works if attachmentMode is zip or mailBodyMode is 'zip-secure-link')<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or use \"Add New\" in the Plugins screen to upload the ZIP.<\/li>\n<li>Activate the plugin via the \"Plugins\" menu in WordPress.<\/li>\n<li>Add a multi-file upload field inside your Contact Form 7 form using the provided shortcode.<\/li>\n<li>Configure the global options under the <strong>Multi File Upload Settings<\/strong> tab in your CF7 form.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='i%20encounter%20a%20problem%2C%20what%20can%20i%20check%3F'><h3>I encounter a problem, what can I check?<\/h3><\/dt>\n<dd><p>From the WordPress admin menu, open a Contact Form 7 form, go to the <strong>Multi File Upload Settings<\/strong> tab, and click <strong>Environment Checks<\/strong> at the bottom.\nYou will see a list of automatic checks for your environment. Make sure all checks pass.\nIf any check fails, the details of what failed will be displayed. Review them carefully and update any outdated software or adjust unsupported PHP settings as needed.<\/p><\/dd>\n<dt id='how%20can%20i%20make%20a%20field%20required%20and%20ensure%20it%20contains%20at%20least%203%20different%20files%3F'><h3>How can I make a field required and ensure it contains at least 3 different files?<\/h3><\/dt>\n<dd><p>Add a field with the attribute <code>minFile:3<\/code> and mark it as required.\nThe field will only validate if at least 3 different files are uploaded.\nEach multi-file input automatically prevents users from uploading the same file twice.<\/p><\/dd>\n<dt id='i%20added%20a%20multi%20file%20upload%20field%20in%20my%20form%2C%20but%20i%27m%20not%20receiving%20the%20files%20by%20email.%20what%20should%20i%20check%3F'><h3>I added a multi file upload field in my form, but I'm not receiving the files by email. What should I check?<\/h3><\/dt>\n<dd><p>Make sure that in the <strong>Mail<\/strong> tab, the <strong>Attachment<\/strong> field contains the name of your upload field.<\/p>\n\n<p>Example: if your form contains\n    [multi_file_upload* multi_file_upload-615 minFile:1]<\/p>\n\n<p>Then in the Mail \u2192 Attachment field you must enter:\n    [multi_file_upload-615]<\/p>\n\n<p>Also verify that the attached files are not too large. Many email providers block attachments over <strong>25 MB<\/strong>.\nThe <strong>Premium<\/strong> version automatically bypasses this limitation: if the aggregated ZIP exceeds 25 MB, you will receive an email with a secure download link instead.\nThe link is valid for <strong>6 hours<\/strong>.<\/p><\/dd>\n<dt id='which%20file%20types%20are%20supported%3F'><h3>Which file types are supported?<\/h3><\/dt>\n<dd><p>All WordPress-supported MIME types.<\/p><\/dd>\n<dt id='is%20it%20compatible%20with%20elementor%2C%20divi%2C%20and%20wpbakery%3F'><h3>Is it compatible with Elementor, Divi, and WPBakery?<\/h3><\/dt>\n<dd><p>Yes, it works perfectly with Contact Form 7 inside all major page builders.<\/p><\/dd>\n<dt id='how%20can%20i%20receive%20a%20password-protected%20zip%20file%20by%20email%3F'><h3>How can I receive a password-protected ZIP file by email?<\/h3><\/dt>\n<dd><p>Password-protected ZIP encryption is available <strong>only in the Premium version<\/strong>.\nEnsure that your form shortcode includes <code>attachmentMode:zip<\/code> and <code>zipPassword<\/code>.<\/p>\n\n<p>Example:\n    [multi_file_upload* multi_file_upload-615 attachmentMode:zip zipPassword:12345]<\/p>\n\n<p>Finally, confirm that the <strong>Mail \u2192 Attachment<\/strong> field includes:\n    [multi_file_upload-615]<\/p><\/dd>\n<dt id='how%20can%20i%20receive%20a%20single%2C%20aggregated%20password-protected%20zip%20file%20by%20email%3F'><h3>How can I receive a single, aggregated password-protected ZIP file by email?<\/h3><\/dt>\n<dd><p>This feature is available <strong>only in the Premium version<\/strong>.\nEnable the option from the <strong>Multi File Upload Settings<\/strong> tab.<\/p>\n\n<p>You do <strong>not<\/strong> need to add anything to the <strong>Mail \u2192 Attachment<\/strong> field:\nall files will be automatically aggregated into a single password-protected ZIP.<\/p><\/dd>\n<dt id='are%20files%20automatically%20saved%20in%20the%20media%20library%3F'><h3>Are files automatically saved in the Media Library?<\/h3><\/dt>\n<dd><p>Only in the <strong>Premium<\/strong> version, through the dedicated settings.\nIn the free version, uploaded files behave like standard Contact Form 7 uploads and are removed after submission.<\/p><\/dd>\n<dt id='can%20i%20get%20a%20download%20link%20for%20each%20uploaded%20file%20as%20a%20zip%3F'><h3>Can I get a download link for each uploaded file as a ZIP?<\/h3><\/dt>\n<dd><p>This feature is available only in the <strong>Premium<\/strong> version.\nEnable it with <code>mailBodyMode:zip-secure-link<\/code> and place the field tag in the <strong>Mail \u2192 Body<\/strong> section.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<p>PHP 7.* fix<\/p>\n\n<h4>1.0.3<\/h4>\n\n<p>Fix warning<\/p>\n\n<h4>1.0.2<\/h4>\n\n<p>Fix default settings warning<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p>Fix settings and plugin required files<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Multi-file upload support<\/li>\n<li>Min\/Max file limits<\/li>\n<li>Maximum size per file<\/li>\n<li>ZIP mode + password<\/li>\n<li>Advanced file saving (Premium)<\/li>\n<li>Secure preview (Premium)<\/li>\n<\/ul>","raw_excerpt":"Upload multiple files per CF7 field, set limits, create secure ZIPs, and send files safely: fast and easy.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/264440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=264440"}],"author":[{"embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pietror91"}],"wp:attachment":[{"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=264440"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=264440"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=264440"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=264440"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=264440"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/is.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=264440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}