Ask for a file when someone on your team will use it to decide the next step. Keep it optional when a customer can still explain the problem without it. Request sensitive or complicated documents later through an agreed process.
For a furniture-repair business, two useful photos might help the coordinator decide whether to arrange an inspection. Requiring six photos before accepting a name and phone number could also stop someone who is away from the damaged item. The right choice depends on how you actually review requests.
Hero photo generated with AI: a hypothetical furniture-repair shop owner photographs a damaged chair seam. No real client, project, or result is shown.
Name the decision the file will support
Before adding an upload field, complete this sentence: “We need this file so that ___ can decide ___.”
“Service coordinator can identify the kind of repair and choose the next conversation” is a useful answer. “It might be helpful someday” is a reason to leave the field out.
Choose one of three paths:
- Ask now and require it: the request cannot reasonably be evaluated without the file. Explain why and give customers another way to contact you if they cannot upload it.
- Ask now and make it optional: it helps staff prepare, but a description is enough to start the conversation.
- Ask later: the file is sensitive, large, or difficult to prepare, or you need to explain what belongs in it first.
If you still need to decide which inquiries fit your business, our estimate-request planning guide covers that broader question. An attachment field is one part of the intake.
A photo can show a torn seam. It cannot reliably establish dimensions, hidden damage, or a final price. Say what the upload helps you assess and what still requires a conversation or inspection.
Give customers a useful photo brief
“Upload files” leaves the customer guessing. Describe the view your reviewer needs, the allowed formats, and the limits before someone opens the file picker.
W3C’s form-instruction guidance recommends clear labels and instructions, including required or optional status and expected formats. Ask your developer to associate that help with the upload control so it is available to people using assistive technology.
Here is a hypothetical first step for an upholstery-repair inquiry. These are example planning values, not recommended limits for every business:
- Purpose: show the whole chair and a close view of the damaged area.
- Status: optional; the customer can send the request without photos.
- Formats and limits: JPG or PNG, up to three files, 10 MB per file.
- Content boundary: keep faces, identification, and unrelated paperwork out of the photos.


Set your real limits after checking platform capacity, the files customers actually have, the reviewer’s needs, and the upload implementation. If typical phone photos arrive in a format your form does not support, decide how you will support them or offer a workable alternative. Do not promise automatic conversion without testing it.
Make the error useful, too. For this example, “This photo is over 10 MB. Choose a smaller photo, or remove it and send your request without photos” explains a way forward. “Upload failed” does not.
Agree on where the files go
A browser’s file picker is only one part of the feature. MDN explains that the HTML accept setting guides file selection but does not validate file types. The server needs its own checks.
For the implementation brief, ask your developer to explain the allowed file types, size and count limits, safe filenames, storage location, and who can retrieve the files. OWASP’s upload guidance recommends several controls together, including business-needed file types, type checks, limits, and protected storage. Checking a filename extension alone is insufficient.
For a public quote form, also agree on abuse controls and any file scanning needed for the chosen workflow. Staff access to customer files should follow the job they need to do. An attachment should not become a publicly accessible link simply because a form tool makes that convenient.
Use this short handoff worksheet with your team:
- Reviewer and decision: who opens the attachment, and what will they decide?
- Customer instructions: what should the file show, and can the request proceed without it?
- Accepted files: which types, how many, and how large? What happens when a file is rejected?
- Record and access: where are the inquiry and files saved together, and who can open them?
- Follow-up: who owns the next step, and what response expectation can the team meet?
- Retention: who decides when files should be removed, and who carries out that removal?
Define “received” before writing the confirmation
“Photo uploaded” and “request received” describe different stages. Our recommended acceptance rule is simple: show the final confirmation after the inquiry has been saved and its attachments have been linked to the correct request.
The hypothetical receiving record below separates that saved request from the staff notification. It is a planning example, not a screenshot of a working platform.


Agree on what happens if saving the request succeeds but the notification fails. A retry or fallback can alert staff without asking the customer to send the same inquiry again. Conversely, an email alert should not be treated as proof that the underlying request and attachments are available to the reviewer.
Keep the customer-facing message precise: confirm what was received, provide a reference if your system supports one, and state the actual next step. Do not imply that uploading a photo approves the work or guarantees a quote.
Test one complete request on a phone
Before launch, run this checklist with the person who will handle inquiries:
- Select ordinary photos from a phone library, including the formats your customers use; test taking a new photo if the form offers that option.
- Remove and replace a photo before sending. Confirm that the final record contains the intended files.
- Try an unsupported file, a file over the size limit, and more than the allowed count. Check that each message explains the fix and preserves the other form details.
- Interrupt an upload and retry. Confirm the form does not show final success while an attachment is still missing.
- Submit with photos, then without photos if they are optional. Open both saved inquiries using the reviewer’s normal access.
- Test the agreed notification-failure path. Check that staff can still find the saved inquiry and that a retry does not create a duplicate request.
W3C’s notification guidance supports clear success and error feedback. The checklist above is our suggested project acceptance test: adapt it to your platform and workflow.
If you are planning a form improvement, bring this completed worksheet and one sample request to a review of your landing page and lead form. Branding Bull can scope the fields, confirmation states, supported delivery integrations, and device checks around the way your team handles inquiries.


