Store file uploads for Contact Form 7
by mirceatm · Forms
Also makes 9 other plugins · 2.1K+ installs across the portfolio →
When this is active, attachments sent trough Contact Form 7 shortcode [file ] will be stored in your Media Library
Try it live opens a temporary test site in your browser, which can take about 20 seconds to load. Plugins that rely on outside services or a full server may not work completely there.
Health
B 83/100
Few reviews
Active installs
1K+
≈1.8K estimated
Momentum
+43%
low volume, under 1,000 downloads a month
Biggest opportunity: Swap “contact”, “file” and “form” for “uploads”, “file uploads” and “store”. “contact” isn't earning its slot: you're not in the first 24 results for its own search. “uploads” sits at #10 untagged, close enough for a declared tag to move it up. “file” isn't earning its slot: you're not in the first 24 results for its own search. “file uploads” sits at #12 untagged, close enough for a declared tag to move it up. “form” isn't earning its slot: you're not in the first 24 results for its own search. “store” sits at #19 untagged, close enough for a declared tag to move it up. All five slots are taken, so one has to go.
83 health vs 65 average across 2,517 Forms plugins
Install conversion
How it's measured →5.8%
of downloads still active
At least 1K of 17.2K lifetime downloads are still running, above its category: the median Forms plugin keeps 1.2%, across 1,671 plugins.
Downloads count every update, not just first installs, so older and more frequently released plugins read lower. Compare against other Forms plugins, not across the directory. wp.org reports active installs as the bottom of a band, so the real rate is this or higher.
This plugin shipped 1 release in the last 12 months, and every existing install that updated counted as another download. wp.org publishes no split between first installs and updates, so we show the raw rate rather than guess at one.
Details
Directory ranking optimization
How it's scored →How well this listing is tuned to rank in WordPress.org search, on the factors an owner controls. Not popularity, optimization.
Excellent listing optimization
Most to gain: Rating quality
Updated 165 days ago
Tested up to WordPress 7.0.8; the current branch is 7.1
5.0★ over 7 reviews, weighted for review count to 4.2★ and held back under 25 reviews
5 of 5 tags set · short description in place
To rank higher: Too few reviews to rank on quality — nudge happy users to leave one.
Get the full rank-higher report →Search visibility
How it's tracked →Directory searches this plugin turns up in, and which way each one is moving. WordPress.org publishes no history of search positions, so this starts the day we first tracked a keyword and never backfills.
34
Momentum
Losing ground
-0.5
Velocity
places per keyword, 28d
9%
Breadth
of keywords climbing, 28d
-0.3
Acceleration
recent half vs earlier
wp.org is where the directory puts the plugin for that search. On merit is where it would sit if results were ranked on rating, support and updates, without the install boost. The last column is how far the wp.org position moved, from our first reading in the last 90 days to the latest.
| Keyword | wp.org | On merit | wp.org move, 90 days |
|---|---|---|---|
| uploads | #10 | #19 | down 1 |
| file uploads | #12 | #20 | down 1 |
| store | #19 | #19 | up 1 |
| save contact form 7 uploads | #14 | #24 | down 1 |
| file upload | #19 | #22 | down 3 |
| store it | #23 | #20 | down 1 |
| contact your tag | Not in the top 24 | ||
| file your tag | Not in the top 24 | ||
| form your tag | Not in the top 24 | ||
| library your tag | Not in the top 24 | ||
| upload your tag | Not in the top 24 | ||
37 searches this plugin appeared in over the last 90 days, 6 listed. 31 left out as unrelated or noise (years, numbers, stray words). 5 of its tags aren't in the top 24 for their own search.
What to do about it
- Swap “contact”, “file” and “form” for “uploads”, “file uploads” and “store”. “contact” isn't earning its slot: you're not in the first 24 results for its own search. “uploads” sits at #10 untagged, close enough for a declared tag to move it up. “file” isn't earning its slot: you're not in the first 24 results for its own search. “file uploads” sits at #12 untagged, close enough for a declared tag to move it up. “form” isn't earning its slot: you're not in the first 24 results for its own search. “store” sits at #19 untagged, close enough for a declared tag to move it up. All five slots are taken, so one has to go.
Daily downloads
Since 5 Oct 2022 · 1,491 days · wp.org + Plugin Pulse archive
30-day downloads
Rolling 30-day volume · peak 1K · peaks are release surges
Directory rank vs rivals
wp.org popularity rank over time · higher is better · when a rival's line climbs above yours, they've overtaken you
Health trend
Composite health score, snapshotted daily
Update activity
How busy the existing users are, measured as downloads in the last 30 days for every 1,000 active sites. A spike means a new release everyone's pulling; a long, slow decline means an aging user base that updates less.
Release cadence
Occasionally updatedHow often this plugin actually ships. A steady rhythm is the maintenance signal a single "last updated" date can't show.
1
releases in the last 12 months
6mo ago
latest release · v1.3.0 · 22 May 2026
7
tagged releases on record
Recent releases
What its installed base runs
via wordpress.orgShare of active installs on each version of this plugin · 45% run the current release. Green is the current release; a big slice on older versions is a user base that has stopped updating.
Estimated active installs
The public count shows “1K+”. Our estimate pins where the real number sits.
Crossed into this band 3.9 years ago; a band this size takes about a year or more to cross, which places it about 80% of the way through.
Install history since 7 May 2021
Recent reviews
All reviews on wp.org ↗- ★★★★★ solanum7mo ago
I use this plugin on several websites and never had any problems! It works just great.
Read on wp.org ↗ - ★★★★★ benjamintoth3.8y ago
Works as expected out of the box.
Read on wp.org ↗ - ★★★★★ jakubborek4.0y ago
Solved my issue without problem, works fine from installation
Read on wp.org ↗ - ★★★★★ mrkhanakia4.9y ago
I am getting error while submitting to CF7. Note: I am trying to upload MP3 files <pre>fatal error: Array ( [type] => 1 [message] => Uncaught Error: Call to undefined function wp_read_audio_metadata() in /home/theuxm/html/wp-admin/includes/image.php:489 Stack trace: #0 /home/theuxm/html/wp-content/plugins/store-file-uploads-for-contact-form-7/store-file-uploads-for-contact-form-7.php(39): wp_generate_attachment_metadata() #1 /home/theuxm/html/wp-content/plugins/store-file-uploads-for-contact-form-7/store-file-uploads-for-contact-form-7.php(55): nmr_create_attachment() #2 /home/theuxm/html/wp-includes/class-wp-hook.php(305): nmr_on_before_cf7_send_mail() #3 /home/theuxm/html/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /home/theuxm/html/wp-includes/plugin.php(518): WP_Hook->do_action() #5 /home/theuxm/html/wp-content/plugins/contact-form-7/includes/submission.php(617): do_action_ref_array() #6 /home/theuxm/html/wp-content/plugins/contact-form-7/includes/submission.php(86): WPCF7_Submission->before_send_mail() #7 /home/theuxm/html/wp-content/plugins/contact-form-7/includes/submission.php(27): WPCF7_Submission->proceed() #8 [file] => /home/theuxm/html/wp-admin/includes/image.php [line] => 489 ) </pre> This topic was modified 4 years, 7 months ago by mrkhanakia.
Read on wp.org ↗ - ★★★★★ Inna Klementjeva5.3y ago
It works and that’s it
Read on wp.org ↗ - ★★★★★ alexwbaumann5.7y ago
Thanks! I spent a day wondering why the temporary file was not longer there then another day finding out that CF7 is moving that file. So this is exactly what I was trying to figure out. It does look like files could be overwritten if they are uploaded with an existing name. You can probably do something like the following to ensure files get unique names and are not overwritten. // Get the path to the upload directory. $wp_upload_dir = wp_upload_dir(); $upload_path = $wp_upload_dir['path']; $unique_filename = wp_unique_filename($upload_path, basename($filename)); $attachFileName = $upload_path . '/' . $unique_filename; copy($filename, $attachFileName); // Prepare an array of post data for the attachment. $attachment = array( 'guid' => $attachFileName, 'post_mime_type' => $filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $unique_filename), 'post_content' => '', 'post_status' => 'inherit' );
Read on wp.org ↗ - ★★★★★ agiannastasio6.5y ago
It works perfect, no config needed.
Read on wp.org ↗
Languages
via translate.wordpress.orgTranslated into 6 languages, 6 at 90% or more
AI assistants
How it's measured →Whether ChatGPT and Claude name this plugin when asked the category question, and whether the readme gives them something to quote.
This plugin’s searches fall outside the topics measured so far. See the topics measured so far.
Readme readiness
4 of 8 pass · checked 29 Oct 2026Can an assistant quote this readme? Eight deterministic checks over the wp.org listing, no model involved.
- ! Says what it does Short description names no action; say what the plugin does for the site.
- ! Has a FAQ No FAQ section.
- ! FAQ asks real questions No FAQ to judge.
- ! Names who it is for Never says who the plugin is for or what they use it for.
- ✓ Names what it works with Mentions Contact Form 7.
- ✓ Headings and lists 4 headings and 2 lists.
- ✓ Enough to quote 4,160 characters of description.
- ✓ Tags match the text All 5 tags appear in the text.
Growth timeline
Install-tier crossings we have observed, and how long each tier took to outgrow
- 2022-11-23 900+ → 1K+ up after 50 days in tier
- 2022-10-04 600+ → 900+ up after 198 days in tier
- 2022-03-20 300+ → 600+ up
Competes with
The plugins that solve the same job, ranked by shared tags then reach, closest match first. The letter on the right is each plugin's health grade (A best, F worst).
- C Contact Form 7 add confirm 50K+ installs · 4.2★ · 2 shared tags D
-
Contact Form Clean and Simple 7K+ installs · 4.6★ · 2 shared tags A -
Confirm Plus Contact Form 7 7K+ installs · 4.0★ · 2 shared tags B -
VS Contact Form 6K+ installs · 4.7★ · 2 shared tags A -
Multifile Upload Field for Contact Form 7 4K+ installs · 3.6★ · 2 shared tags D -
cformsII 3K+ installs · 4.2★ · 2 shared tags B
Embed this report card
Drop a live Pulse card for Store file uploads for Contact Form 7 into a readme, a review or a deck. It updates itself.
<iframe src="https://plugins.wpmayor.com/embed/store-file-uploads-for-contact-form-7" width="480" height="300" style="border:0" loading="lazy" title="Store file uploads for Contact Form 7 — Plugin Pulse"></iframe> Store file uploads for Contact Form 7: 1K+ active installs, 5.0★ (7 reviews). Plugin Pulse (WP Mayor), as of 2026-11-03. https://plugins.wpmayor.com/plugin/store-file-uploads-for-contact-form-7
Spotted a number that looks wrong? Report a data issue and we'll check it against the source.