All articlesGuides

File and Photo Uploads on Forms: Limits, Storage and What Actually Breaks

Adding an upload field is easy. Keeping it working once real customers send twelve phone photos of a damaged roof is the part nobody plans for. Here is what to configure before you turn it on.

BotForms TeamUpdated 7 min read
A person photographing the front of a washing machine with a smartphone in a home utility room

Short answer: file uploads are standard on modern form builders — including every BotForms plan from $29/month as of September 2026 — and the thing that breaks is never the field itself. It is storage, file size caps and field order. Set those three before you publish the form.

An upload field is two minutes of work in any builder. That is exactly why it gets added without a plan, and why the same three problems show up a few months later on every form that has one: the storage bar creeping up, a submission that failed silently because someone attached a video, and a completion rate that quietly dropped when the upload moved to the top of the form.

None of these are hard to avoid. They are just easier to avoid before launch than after.

Why the upload field is worth the trouble

For anything quoted remotely, a photo is the difference between a lead and a job. A customer writing "there is water damage in the ceiling" gives you nothing to price. Three photos of the same ceiling gives you the extent, the material, and often the cause. The estimate you send back is either accurate or defensible, and you did not spend a truck roll finding out.

The same logic applies well beyond field service. A design agency asking for the current brand assets, an accountant asking for last year's return, a repair depot asking for a photo of the model plate — in each case the upload converts a back-and-forth email thread into one submission. Every round trip you remove is a place the lead stops replying.

That is the upside, and it is why an upload field belongs on almost any estimate form — the wider question set for those is in the quote request form questions worth asking. It is large enough that the right question is not whether to add uploads but how to add them without the three failure modes.

Failure one: storage arithmetic nobody did

Phone photos are bigger than people assume. A recent phone shooting in its default mode produces files in the 2 to 5 MB range, and HEIC images that look small on the device expand when converted. Multiply by however many you ask for.

Here is what a form with a three-photo upload field costs in storage at different volumes, using 3 MB as a working average:

Submissions per month Photos per submission Storage per month Storage per year
50 3 ~450 MB ~5.4 GB
100 3 ~900 MB ~10.8 GB
250 3 ~2.2 GB ~26 GB
500 5 ~7.5 GB ~90 GB

Set that against the plan you are on. BotForms includes 5 GB on Starter, 25 GB on Pro and 100 GB on Business, with extra storage available as an add-on at $5 per 50 GB — see pricing for the current figures. The pattern that matters is the right-hand column: almost nobody outgrows their storage in month one, and a surprising number of businesses do it in month eleven.

The fix is not a bigger plan. It is a retention habit. Decide, once, how long an attachment needs to exist after the job it belongs to is closed — for most businesses that is somewhere between 90 days and the length of a warranty period — and clear on that schedule. If the document you actually need to keep is the record of the job rather than the raw photos, generate it and keep that instead. That is exactly the workflow described in turning every submission into a branded PDF: the document is the archive, the source photos are working files.

Failure two: no caps, stated nowhere

An upload field with no limits will eventually receive a 400 MB video. Not often, but once is enough to produce a failed submission that the customer thinks went through and you never see.

Three settings, all of which take a minute:

Cap the file size. Something in the 10 to 25 MB range per file covers every photo and almost every PDF while keeping video out by accident rather than by argument.

Cap the count. Three to six files handles the honest cases. Someone with genuinely more can send the rest by email after you reply.

Restrict the formats. JPG, PNG, HEIC and PDF is the working set for intake. Widening it past that means committing to open whatever arrives.

The part people skip is putting the limits in the field label, not only in the validation error. "Up to 4 photos, 20 MB each (JPG, PNG, HEIC or PDF)" sitting under the field prevents the failure. An error message after a two-minute upload on a phone connection produces an abandoned form instead. That is the general principle behind validation rules that stop bad data at the source — the constraint has to be visible before the effort, not after it.

Failure three: the upload is first

This is the one that costs money silently.

An upload is the highest-effort field on any form. It asks the person to leave your page mentally, sometimes literally into a camera roll or a file picker, and it happens on a phone more often than not. If it is the first thing they meet, a meaningful share simply stop — and because they stopped before entering a phone number, you have no idea who they were.

Put contact details first. Name, phone, and the one-line description of the problem. Then the upload. A person who abandons at the upload step has still given you enough to call them, and calling them is often more effective than the photos would have been.

If your form is long enough that this matters, the sequencing question is the whole design problem — smart multi-step forms that adapt to answers covers how to order steps so the expensive ones come last, and reducing form abandonment covers what the drop-off data looks like when you get it wrong.

Getting the files to the person who needs them

Collecting photos and then leaving them in a dashboard nobody opens is a common and expensive outcome. Two routes work.

Attach them to a document. A generated PDF containing the submission and the photos is a file the technician saves to their phone, and it opens in a basement with no signal. A web dashboard does not.

Give field staff a scoped view. Restricted accounts that see only the submissions assigned to them, and can download the attachments, avoid the choice between sharing your admin login and forwarding everything by hand. On BotForms this is what team collectors and viewer accounts are for — the mechanics are covered in letting a field team collect form data without account access, and the seat-and-permission question more broadly in who on your team should see form submissions.

A note on what you are storing

Photos taken at a customer's property are customer data. Some of them contain more than the thing being photographed — a face, a document on a table, a licence plate, a house number. That is not a reason to avoid uploads, but it is a reason to hold them for a defined period rather than indefinitely, to keep access scoped to people who need it, and to say plainly on the form what the photos are used for.

If you operate somewhere with a formal data protection regime, the retention period and the lawful basis are questions for someone qualified in your jurisdiction rather than a blog post. What is universally true is that the shortest retention that still serves the business is the least exposure, and that a stated retention period is easier to defend than an accumulated archive nobody decided to keep.

What good looks like in practice

For a service business quoting from photos, the working configuration is small:

Contact details first, then a short description, then an upload field capped at four files and 20 MB each with the limits printed in the label, accepting JPG, PNG, HEIC and PDF. Submission generates a document containing the values and the images. The customer gets their copy, the assigned technician gets a scoped view, and attachments on closed jobs clear on a fixed schedule.

That configuration is roughly fifteen minutes of setup and it removes the three failure modes entirely. The version that causes trouble is the one where an upload field got added to an existing form on a Tuesday because a customer asked, and nothing else changed.

Trying it

If you are adding uploads to a form you already run, change one form first and watch two numbers for a fortnight: completion rate before and after, and average attachment size. Those two tell you whether the field is earning its place and how fast your storage will move.

File uploads are included on every BotForms plan starting at $29/month; storage is 5 GB on Starter, 25 GB on Pro and 100 GB on Business, with extra capacity as an add-on. See features for the full builder, pricing for current limits, or start a 30-day trial.

Frequently asked questions

Can an online form accept photo and file uploads?

Yes, and for most service businesses it is the single field that changes the quality of a lead the most. A photo turns a vague description into something you can quote from. As of September 2026 BotForms includes file uploads on every plan from $29/month, with the practical limit being storage rather than the field itself — 5 GB on Starter, 25 GB on Pro and 100 GB on Business.

How much storage do photo uploads actually use?

Modern phone photos run roughly 2 to 5 MB each once you account for HDR and higher-resolution sensors. If a form asks for three photos and gets 100 submissions a month, budget somewhere around 1 to 1.5 GB a month. That is comfortable on a 25 GB plan and tight on a 5 GB one within a year, which is why retention matters more than the plan you pick on day one.

Should I let people upload as many files as they want?

No. An unbounded upload field is the field that eventually gets a 400 MB video attached to it. Cap the count and the size per file, state the cap in the field label rather than only in an error message, and be explicit about which formats you accept. People will comply with a limit they can see before they start.

What file types should I accept on a public form?

Accept the narrowest set that does the job — usually JPG, PNG, HEIC and PDF for an intake form. Every extra format you allow is a format you have to be able to open, and executables or archives on a public form are a liability with no upside. If someone genuinely needs to send something unusual, an email address in the confirmation gives them a route without opening the front door.

Do uploads slow down form completion?

They can, badly, if you put the upload first. An upload field asks for effort before the person has invested anything, and on a phone it may bounce them into a camera roll and out of your form. Put uploads after the contact details are captured, so that an abandoned upload still leaves you a lead you can call.

What happens when I run out of storage?

Behaviour varies by platform, and the failure mode you care about is whether new submissions are rejected or merely the attachments are. Check that before you get close to the ceiling. On BotForms additional storage is an add-on at $5 per extra 50 GB, and a retention routine that clears attachments on closed jobs usually costs less effort than it saves.

Can I get uploaded photos to a technician in the field?

Yes, and this is the actual point of collecting them. The two routes that work are attaching them to a generated document the technician can save to their phone, and giving field staff a restricted view of the submissions assigned to them. Both beat forwarding an email chain, which breaks the moment there is no signal at the property.

Build this form in about a minute

Describe what you need to collect — or upload a PDF of the form you already use — and BotForms builds it, hosts it, and routes every submission to your inbox.

Start your 30-day trial

Keep reading