How to upload files with AJAX using jQuery and FormData?

To upload files using AJAX with jQuery and FormData, you need to follow these steps:

  1. Create a HTML form with an input field of type "file":
<form id="myForm"> <input type="file" name="myFile" id="myFile"> <input type="submit" value="Upload"> </form>
  1. Add jQuery and include the following JavaScript code:
$(document).ready(function() { $('#myForm').submit(function(event) { event.preventDefault(); // Prevent default form submission var formData = new FormData(this); // Create a FormData object from the form $.ajax({ url: 'upload.php', // Specify the URL endpoint for file upload type: 'POST', data: formData, dataType: 'json', // Set the expected response type processData: false, // Prevent jQuery from automatically transforming the formData contentType: false, // Prevent jQuery from setting the content type header success: function(response) { // Handle the successful upload console.log(response); }, error: function(xhr, status, error) { // Handle the failed upload console.log(xhr.responseText); } }); }); });

Make sure to replace 'upload.php' with the actual path to your server-side script that handles the file upload.

  1. Create a server-side script (e.g., 'upload.php' in this example) to handle the file upload. In this script, you can access the uploaded file using the standard $_FILES array. Process the file as desired and return a JSON response to the client.

  2. Test the file upload by selecting a file and clicking the "Upload" button. The selected file will be sent to the server using AJAX and the response will be logged in the browser console.

Note: This example assumes you are using jQuery and have included it in your HTML file. You can download jQuery from https://jquery.com/download/.