HTML File Upload Tutorial with Example

This tutorial will briefly discuss the process of file uploads and how to do this with basic HTML. This tutorial will require a basic understanding of the coding language and web development.

Create a Form with the HTML Form Element

Fortunately, HTML is simple enough that we can easily upload files using the element <input>. Look at this example of the HTML syntax for the file uploading system:

<!-- File Uploader HTML-->
<form action="fileupload.php" enctype="multipart/form-data" method="post"><label class="custom-uploader" for="file">Upload Your File</label> <input id="file" accept="image/jpeg,image/gif,image/png,application/pdf,image/x-eps" name="fileToUpload" type="file" /> <button class="btn btn-success" name="submit" type="submit"> Upload File </button></form>

Here’s the result:


  • <form>: HTML <form> is used to display a form on the website. Forms are used for various purposes, including uploading files, submitting feedback, or signing up for newsletters.
  • Action: The HTML form action is the URL to which the form submits the data. 
  • Method: The method attribute is used to specify the HTTP method used to send data while submitting the form. There are two types of methods available.
  • POST
  • GET
  • Enctype: The enctype attribute specifies the encoding type for a form element. This can be set to “multipart/form-data” or “application/x-www-form. multipart/form-data is necessary if your users are required to upload a file through the form.
  • <label>: The <label> HTML tag represents a caption for an item in an interface. It is not mandatory to upload files. It is used just for the caption.
  • <input>: HTML inputs are used to make interactive controls for web-based forms to accept user input data.
  • Type: HTML form input type is a type of input that will automatically validate the data and format it according to specified formats. In this case type=”file” is required to upload a file.
  • Name: The HTML INPUT NAME attribute is used to specify a name for an INPUT element. It is used to reference the form data after submitting the form or reference the JavaScript or CSS element.
  • Submit: HTML’s type=”submit” tag defines a submit button. It is used to submit form information to a web form handler.
  • Accept: The accept attribute’s value is a semicolon-separated list of one or more file types or file type designations, specifying which file types to accept.

Follow These HTML Uploading Rules

Note: When making an HTML form to upload a file, you should follow the rules given below.

  1. Make sure the form uses method=”POST”
  1. The form also needs an attribute called enctype=”multipart/form-data”. The enctype specifies which content type to use when submitting the form.

Without the requirements above, the file upload will not work.

Other things to note: 

  • The type=”file” attribute of the <input> tag shows the input field as a file-select control, with a “Browse” button next to the input control
  • Modern users might not appreciate the old way of choosing files (“Choose a File” button). Thus, you should consider using an HTML picker to upload files.
  • If you want an easier way of implementing file uploads with much richer features in your application, you can choose to Acquire our file uploader. Doing so will let you build a superior file upload experience for your users in a matter of minutes.

Programming Languages That Integrate with HTML Forms

You can use many programming languages to receive data from an HTML form. Many of them have their own advantages and disadvantages. Some of them are listed below.

  1. Java
  2. PHP
  3. ASP
  4. ColdFusion
  5. JavaScript
  6. Ruby
  7. Python
  8. Perl
  9. C

How to code an upload file button

In HTML, forms are used to collect user input. These forms can be used to collect a variety of data types, including text, email addresses, and files. To create a form that allows users to upload files, you will need to use the <input> element with the type attribute set to “file”.

Here is an example of a simple HTML form that allows users to upload a file:

<form action="/upload" method="post" enctype="multipart/form-data">
  <label for="file">Select a file to upload:</label>
  <input type="file" id="file" name="file">
  <button type="submit">Upload</button>

In this example, the form has three attributes:

  • action: This attribute specifies the URL to which the form data will be submitted.
  • method: This attribute specifies the HTTP method that will be used to submit the form data. In this case, the POST method is used.
  • enctype: This attribute specifies the content type of the form data. The multipart/form-data content type is required for file uploads.

How to hide an upload file button

You can hide an upload file button using CSS. Here is an example of how to hide an upload file button with the ID “file”:

#file {
  display: none;

More form customizations (eg tool tip, color on hover, colored buttons)

There are a number of ways to customize the appearance of HTML forms. You can use CSS to style the form elements, such as the input field and the submit button. You can also use JavaScript to add interactivity to the form, such as tooltips and hover effects.

Here is an example of how to style a form using CSS:

form {
  background-color: #f0f0f0;
  padding: 20px;

input[type="file"] {
  width: 100%;
  padding: 10px;
  margin-bottom: 10px;
  border: 1px solid #ccc;
  border-radius: 3px;

button[type="submit"] {
  background-color: #4CAF50;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;

button[type="submit"]:hover {
  background-color: #45a049;

This code will style the form with a light gray background color and padding. The input fields will have a width of 100%, padding, and a margin. They will also have a border and a rounded border radius. The submit button will have a green background color, white text, padding, and no border. It will also have a rounded border radius and a cursor that changes to a pointer when hovered over.

Adding MetaData To Uploaded Files

When uploading files, you can also include metadata along with the file data. Metadata is information about the file, such as the file name, the file size, and the file type. You can add metadata to a file upload form using the <input> element with the type attribute set to “hidden”.

Here is an example of how to add metadata to a file upload form:

<form action="/upload" method="post" enctype="multipart/form-data">
  <label for="file">Select a file to upload:</label>
  <input type="file" id="file" name="file">
  <input type="hidden" name="filename" value="my_file.txt">
  <input type="hidden" name="filesize" value="1024">
  <button type="submit">Upload</button>

In this example, the form includes two hidden input fields. The first hidden input field stores the filename of the uploaded file. The second hidden input field stores the size of the uploaded file.

How To Specify Upload File Types (using input and accept attributes)

You can specify the types of files that can be uploaded using the accept attribute of the <input> element. The accept attribute takes a comma-separated list of MIME types. For example, to only allow users to upload image files, you would use the following code:

<input type="file"

Summary of HTML File Uploading

In conclusion, uploading files with HTML is not too difficult, but it does take some time to get used to it.

-You can upload files by appending the file name inside an anchor tag. 

-The target attribute should point to the filename you want to upload. 

-It’s best to use an anchor tag with a “name” attribute assigned so that it’s easier to reference the file down the line.

Read More →

Ready to get started?

Create an account now!