Can I Use jQuery Ajax to Upload Files Using POST?
File upload via AJAX is not possible with the provided jQuery code. As the response suggests, you cannot upload files directly through AJAX.
However, with the advent of XHR2, file uploads through AJAX have become possible using the FormData object. For this to work, you'll need to use a browser that supports FormData, such as:
Here's how you can modify your code to use FormData for file uploads:
var formData = new FormData(); formData.append('file', fileObject); // Replace 'fileObject' with your file input element $.ajax({ type: "POST", timeout: 50000, url: url, data: formData, // Use formData instead of dataString processData: false, // Prevents jQuery from converting formData to a string contentType: false, // Tells jQuery not to set any content type header success: function (data) { alert('success'); return false; } });
In this modified code, we create a FormData object, append the file to it, and set processData and contentType to false to allow jQuery to handle the data correctly.
The above is the detailed content of Can I Use jQuery AJAX to Upload Files, and How?. For more information, please follow other related articles on the PHP Chinese website!