How to Create a File Upload Form in WordPress: 6 Easy Steps!

Editorial Note: We may earn a commission when you visit links on our website.

Wondering how to let your website visitors upload attachments through a simple WordPress file upload form?

Giving users the ability to upload documents and media to your WordPress site can make it easier for you to collect the information you need.

Create Your File Upload Form Now

In this article, we’ll show you how to create a WordPress file upload form the easy way using the WPForms plugin.

How to Create a File Upload Form

The video above will walk you through the entire process. Prefer written instructions? Check out the steps below:

Step 1: Create Your File Upload Form

As the best form builder plugin, you can easily create a file upload form with WPForms, thanks to its drag-and-drop interface and dedicated File Upload field.

The WPForms homepage

It also includes several file upload form templates to help you create your form quickly and accept attachments, such as:

  • Documents (.doc, .xls, .ppt, and .pdf)
  • Images, (.png, .gif, and .jpg)
  • Videos (.mpg, .mov, and .wmv)
  • Audio files (.wav, .mp3, and .mp4)
  • And more.

If you need help installing WPForms, learn how to install and activate a WordPress plugin. Remember, you’ll need a paid license to use the File Upload field.

Get Started With WPForms Now

Step 2: Choose a File Upload Form Template

Go to your WordPress dashboard and click on WPForms » Add New in the left-hand menu to add a new form.

We’ll use one of WPForms’ 1,800+ form templates to make our file upload form and kick things off!

Scroll down and type “file upload form” in the template search field. When this template appears in the results, move your cursor over it and click Use Template.

Choosing the File Upload Form template

Then WPForms will populate a pre-built File Upload Form, where you can Add Fields via drag-and-drop functionality to the form preview on the right side.

The File Upload Form template

Now we can customize our WordPress file upload form to make it relevant to our website and the customers that will be using it.

Remember that you can add extra fields or move your file upload field to a different spot just by dragging and dropping.

Adding a File Upload field to a contact form

Step 3: Customize the WordPress File Upload Form

With the File Upload Form template, you’ll already have the Name, Email, Phone, File Upload, and Additional Comments fields.

Click on any of the form fields to make changes to its Label, Description, and other settings like setting up Smart Logic.

File upload field options

If we talk about the File Upload field, you’ll notice that it comes with a list of different options for you to customize. These include:

  • Allowed File Extensions — If you want to restrict the types of files that can be uploaded to your WordPress form, put them here, each separated by a comma.
  • Max File Size — Specify, in megabytes, the max size file you’ll allow users to upload. If you leave this blank, WPForms will default to the maximum file size limit that’s allowed by your web host. If you need to increase it, see this tutorial on how to change the maximum file upload size in WordPress.
  • Max File Uploads — If you’ve chosen the Modern style (see below), you can specify how many files users can upload to your form.
  • Required — If you want to require that users upload documents to WordPress before they can submit their form, select this checkbox.

Modern file upload drag and drop

In the Advanced tab of the field options panel, you can also change:

  • Style — You can switch between the default Modern style (recommended) and the Classic style. Only the Modern style allows for users to upload more than 1 file at a time.
  • Store file in WordPress Media Library — Save files uploaded to this field in your site’s WordPress Media Library.

Step 4: Configure Form Notifications & Confirmations

Notifications are an excellent way to know when someone submits one of your file upload forms. All forms in WPForms have notifications enabled by default.

Accessing a form's notifications settings

There are 2 ways you can include your form’s uploaded file(s) in the email notification. The recommended option is to use Smart Tags to add a link to the body of the email.

A file upload link in an email notification

Using Smart Tags means the image itself is not included in the email. That can help to avoid emails being tagged as spam.

If you’d like to include the image as an attachment, can scroll down to the Advanced settings for the notification and Enable File Upload Attachments.

Enabling file upload attachments for an email notification

Keep in mind that email providers may have limits on the size of the attachments you can send from your site, so it’s best to test your form when you launch it.

Once you’ve set up the form notification, you can go ahead and check out our tutorial on how to set up form confirmations. To start, click on the Confirmations tab in the Form Editor under Settings.

multi step lead form confirmations

There are 3 different kinds of confirmations in WPForms:

  1. Message — This is the default confirmation type. It displays a message after someone hits submit on your form, and is customizable.
  2. Display Page — Automatically sends users to any post or page on your site like a thank you page.
  3. Redirect — Useful if you want to take the user to a different website or specialized URL for more complex development.

Select the type of confirmation type you’d like to create. For this example, we’ll select Message and add a basic confirmation message.

Customizing the file upload form confirmation message

Feel free to customize the confirmation message to your liking and click Save when you’re done. Now you’re ready to add your form to your website.

Step 5: Add Your File Upload Form to Your Website

After you’ve created your form, you need to add it to your WordPress site.

And WPForms lets you add your forms to multiple places on your WordPress website including your pages, blog posts, and sidebar widgets.

To begin to embed your file upload form, create a new page or post in WordPress, or go to the update settings on an existing one.

After that, add a new block and select the WPForms icon to proceed and add your form to the page/post.

Adding a WPForms block to a page

Click on the WPForms dropdown and pick the form you’ve already created that you want to insert into your page. So select your file upload form.

Selecting a file upload form in the WPForms block

Next, click on the blue button in the top right that says either Publish or Update, so your form will appear on your website.

Publishing a file upload form

That’s it! Your file upload form is now live on your website and ready to start accepting attachments from your users.

Step 6: View the Uploaded Files in WordPress

WPForms stores each form submission as an entry. To view uploaded files, go to WPForms » Entries.

And from there, select the right form from the list and click on View to view details and attachments related to the specific entry.

Viewing an entry to your file upload form

Next, right-click the file to download the file, or click to view it in your browser, the choice is up to you!

Viewing the file upload in an entry

Better yet, the WPForms WordPress plugin has tons of addons you can install so you can do more with your files.

For example, you can use our Zapier addon to automatically save all file uploads to different services, such as:

Create Your File Upload Form Now

FAQs on File Uploads in WordPress

File uploads are a popular topic among our readers. Here are some common questions about file uploads in WordPress.

Why Use a File Upload Field on Your Forms?

You might need to add a file upload field to your WordPress forms so users can upload documents to WordPress as well as other types of files and media as they submit their forms to you.

What Kinds of Forms Can I Create?

One of the most common uses of a file upload field is in job application forms so applicants can attach their resume files and other important documents.

However, there are countless other scenarios where a WordPress file upload form can come in incredibly handy, such as:

What File Formats Does WPForms Accept?

When you create an image upload form, WPForms uses the same defaults as WordPress:

  • Images (.png, .gif, and .jpg)
  • Documents (.doc, .xls, .ppt, and .pdf)
  • Video (.mpg, .mov, and .wmv)
  • Audio (.wav, .mp3, and .mp4)

Sometimes you’ll want to accept file uploads that WordPress doesn’t allow by default. There’s an easy way to do that. Here’s how to allow additional file upload types to your forms using a free plugin. It lets you specify the file format and MIME type for each additional file extension.

If you’d like to increase the maximum upload image size for your site, check out this tutorial on increasing the maximum file upload size in WordPress.

Create Your File Upload Form Now

Next, Create a File Upload Widget in WordPress

If you want to allow site visitors to upload files directly to your website using a widget, be sure to check out our helpful guide on how to create a WordPress file upload widget and make it easier to collect the information you need!

Create Your File Upload Form Now

Ready to build your form? Get started today with the easiest WordPress form builder plugin. WPForms Pro includes lots of free templates and offers a 14-day money-back guarantee.

If this article helped you out, please follow us on Facebook and Twitter for more free WordPress tutorials and guides.

Using WordPress and want to get WPForms for free?

Enter the URL to your WordPress website to install.


  1. some truly nice and useful info on this internet site, too I conceive the design and style contains great features.

  2. Hello,

    how can a change the text “click or drag a file to this area to upload” (to Dutch) ?


  3. How can this be used to allow users to upload multiple files and have them all linked to the submitted post?

    1. Hi Hiren, thanks for the question!
      In the Post Submission form, you can only use individual File Upload fields, as you will have to add custom fields to your posts and there is no custom field type to store multiple files. However, if you will upload images only, then you can use the Image Gallery custom field and use multiple Upload Files field in your post submission form.
      In case it helps, we have a great tutorial on how to create a post submission form in WPForms.
      I hope this helps.
      Have a good one 🙂

  4. If i wanted to use this form builder to take their name ,contact and mailing address along with submitted customer pictures and text to sell My POD merchandise. How Can i link this to my paypal acct and autoresponder account? To take their order?

    1. Hi Steve,
      In order to connect WPforms with PayPal and add the PayPal payment options to your form, you can use our PayPal addon, which is available with the Pro license level or higher. I’m not aware of the Autoresponder service that you have mentioned, but you can check if it’s available in Zapier – the connection service, then you should be able to integrate it with WPforms through our Zapier addon.
      I hope this helps!
      Have a good one 🙂

  5. Hi, thank you for you plugin, I am using basic plan.

    How I can send attachment with entry confirmation to manager? It forwards only text fields, but not an attachment.

    This is an issue when using staging / live environments at hosting, as during I am preparing updates on staging there are a lot of submissions at live version and then, after pushing staging to live all attachments are lost.

    Thank you.

    1. Hi Volodymyr.
      WPForms doesn’t support including attaching files to emails currently. The reason is that it can often hurt email deliverability. Different email providers have different limits on the type and size of files they can accept. Sending files that don’t pass these rules most often means the email won’t get delivered or will bounce.
      I hope this makes sense.
      Have a good one 🙂

    1. Hey Jana – The file upload size limitation in your forms defaults to the maximum that your web host allows. You can lower this limit from the form settings though. In general, having high file size won’t affect overall site speed but it will take more time to upload big files and users need to wait for a longer time to submit the form, Also your server should have sufficient space to store big files.

      I hope this info helps!

    1. Hey Tim — I apologize, but I’m not sure I understand your question. When you get a chance, could you please share more details, or possibly an example of what you’re looking to do? Thanks!

  6. Hi there, Thanks for this article.

    Using the Modern Style, how can I upload an image and display it in the same box after it has been uploaded; i.e. after clicking the submit button?


    1. Hey Noel – I am afraid this can’t be done at the moment. We will keep it on our roadmap for the future. Thanks for the suggestion!

      Have a good one 🙂

    1. Hey Debajyoti – If you’d like to include uploaded files on a WordPress page/post, then I’d recommend setting up the File Upload field to send files to the WordPress Media Library (you can check out more details on that setting here). This will let you easily access those files as you’re using the WordPress page/post editor.

      I hope this helps! If you have more questions about this, or if I’ve misunderstood your question in any way, please contact our support team. We’d be happy to help more from there! 🙂

      1. when uploading a audio file, it does not post to the blog but the title and info does but not the audio player. how do I get the audio player or video player to appear on the blogpost with submitted post?

      2. Hey Joe,

        I am sorry as currently, we don’t have an inbuilt feature to embed the uploaded audio/ video into their respective audio/video player in the blog post. I’ve made a note of the feature request and we’ll keep it on our radar as we plan out our roadmap for the future.

        I apologize for the inconvenience!

  7. Is there a chance to combine it with some sort of double-opt-in?
    Otherwise I have to rely on third party stuff like borlabs or the like.

    1. Hey Till – I am afraid we currently don’t have a built-in double optin feature in the form. If it helps we have addons for various email marketing services and most of these services have double optin features which you can use via WPForms. For example, we have addons for most of the email marketing services mentioned here. Please take a look at the pricing page to know which addon is available with which license.

      I hope this helps!

    1. Hey Hardik- Good question!

      By default, the user-uploaded files are stored in the WPForms folder inside the Uploads directory of your site. (wp-content/uploads/wpforms)

      I hope this helps! If you have any questions, please feel free to get in touch with our team.

      Thanks, and have a good one 🙂

    I just lost abou an hour creating a form e when I got to the file upload part, I just couldn’t make it. So frustrating. please, update your post.

    1. Hi Lucas, I’m sorry to hear that you’re having some issues with the File Upload field on your form. The File Upload field is only available with any of our Pro (paid) versions of WPForms as mentioned in the article. Our Lite (free) version does not include the File Upload field. If you’re having issues with the File Upload field with one of our Pro versions, please contact us if you have an active subscription.

      If you do not, don’t hesitate to drop us some questions in our support forums.

  9. How can I download files collectively?
    People send me about 300 photos and I want to download it faster than clicking every link.

    Is it possible?

    Thank you.

    1. Hi Martin! We don’t have any options that would enable you to download all the files at once, as the entries are stored in their own post within your site’s database. You could download files in batches if you access your site’s server via FTP, or the File Manager in your hosting dashboards cPanel. By default, the user-uploaded files are stored in the Uploads directory of your site, inside the WPForms folder. More details about our File Upload field can be found in this article.

      I hope this helps to clarify 🙂 If you have any further questions about this, please contact us if you have an active subscription. If you do not, don’t hesitate to drop us some questions in our support forums.

    1. Hey Theirry- Great question. File upload names are preserved, but we add a unique hash to the end of the file name as you probably noticed (eg: my-logo-570543445db74.png). This is done for security purposes, to prevent users from trying to “snoop” for the files on your server after they have uploaded them, which is common when someone is trying to be nefarious.

      By default, WPForms (and WordPress) will not allow any files to be uploaded that could be harmful to your website or that could be exploited. However, we add the hash to the file so that malicious users couldn’t easily open up a bunch of files that have been uploaded to your site.

      Customizing the File Name with the respective user name can be possible. However, I apologize as we aren’t able to provide support for this degree of customization.

      In case you’d like to look into custom development options, we highly recommend using Codeable. Codeable screens all developers for you to make sure that they’re highly skilled and communicative, and then also helps guide the entire process of connecting and communicating with a best-fit developer.

      Here’s our tutorial on using Codeable, which provides more details on how this process works.

      Thanks!! 🙂

  10. Are all of these uploaded files searchable by keywords? I’m trying to do something like there where I can have users upload files and fill in keywords in the upload form. And then other users can search via keyword for those files.

    1. Hi John. Thanks for reaching out to us.

      The File upload names are preserved, but we add a unique hash to the end of the file name as you probably noticed (eg: my-logo-570543445db74.png). This is done for security purposes, to prevent users from trying to “snoop” for the files on your server after they have uploaded them, which is common when someone is trying to be nefarious. It should be possible to search through your file depending on the File name. However, we don’t have a native feature to achieve this at the moment.

      As a workaround, you can display the entries on the front end using this custom code and for further customization of integrating a search feature, we suggest you codeable or WPBuff.

      Thanks and have a good one!

  11. Instead of saving upload url in database, is it possible to save attachment id against the field value while using upload field?

  12. Would it be possible to trigger a webhook when an upload is done and if so, can the payload contain a URL to the uploaded file?

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

This form is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.