Ajax jQuery PHP

PHP and Ajax Asynchronous File Upload using jQuery

Written by Yogesh Koli

PHP Asynchronous File Upload

This tutorial is for beginners, who started working on PHP Project, and wants to add asynchronous file upload feature, so you’re at right place.

Detail Description:

So you might thinking what is file upload? And how it works?

The answer is here, to upload your file from your local machine to the server (website) is called file upload, it works exactly same as the definition, when we select our file from the browser and click submit, the browser takes file from our local machine and submits it to the server and server do his job to save the file to the defined path.

Here I am going to explain step by step process to create the file upload feature along with the source code of this tutorial so that you can easily download and test on your local machine.

The things you should know before following this tutorial:

  1. PHP
  2. HTML
  3. jQuery
  4. CSS
  5. Bootstrap

So let’s start some coding:

Look at the below code, from index.html file:


Form and Input Field: The basic need to upload file is to have <form> with enctype="multipart/form-data", if you notice the above file I have added form with enctype, next is the input field of file type, we have this field with the ID “file_to_upload“.

Submit Button: After </form> we have Submit button included with onClick event along with function call uploadFile(), we are going to write this function under script.js file, which is going to handle file upload operation.

Create script.js file:

Let’s create script.js file and add following source code in to it:


So we have our script.js file ready, here we have uploadFile() function is defined, this function is basically to check validation and get the selected file from input field and submit it to the uploadFile.php page asynchronously using ajax.

So now we need to create uploadFile.php, so go ahead and crated this file to the root, and use following source code:


Just a 10 lines code 🙂 yes this lines is to have our file uploaded to the files folder on server, we are using move_uploaded_file() function here. if you remember we had send selected file from “file_to_upload” input field.

We are done with the code, find out following tutorial folder structure and complete source code below:

Folder Structure

PHP File Upload using jQuery folder structure

Demo Screen:

Demo Screen for PHP Asynchronous File Upload using jQuery

if your done with all above steps then go ahead and run the code on your server if not you can download the code from the below link as well.

About the author

Yogesh Koli

Yogesh Koli is a software engineer & a Blogger lives in India. He's driven by an addiction to learning and a love for adventure. he has 5+ years of experience working with the front-end, back-end, web application development, and system design.

Leave a Reply

2 Comment threads
1 Thread replies
Most reacted comment
Hottest comment thread
3 Comment authors
Jero JerromonYogesh KoliVikram singh Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

newest oldest most voted
Notify of
Jero Jerromon
Jero Jerromon

sir, sorry, but can you kindly please explain to me about getting path string of the uploaded images, and inserting it into the database, i’ve been working on your tutorial about CRUD operation using Jquery, and i want to implement image for user, but i am stuck, no image uploaded to my server folder and no path record in database. this is what i’ve tried for the php file: if(isset($_POST[‘username’]) && isset($_POST[’email’]) && (isset($_FILES[“file”][“type”])){ $tmp = $_FILES[‘file’][‘tmp_name’]; $Path = “uploads/”.$_FILES[‘file’][‘name’]; if(move_uploaded_file($tmp,$Path)) { $query = “INSERT INTO users(username, email, image) VALUES(‘$username’, ‘$email’, ‘$Path’, ”)”; if (!$result = mysql_query($query)) { echo”No data… Read more »

Vikram singh
Vikram singh

great tutorial. Which web framework u use sir.

Yogesh Koli

You’re asking for specific tutorial or regarding website development ?
Although I use laravel framework for development, there lot more tutorials coming related to laravel.