Reputation: 281
I am unable to send files in PHP AJAX Request:
Form:
<form class="frmContact" action="#" method="post">
<div class="col-md-6">
<input type="hidden" name="emailTo" id="emailTo" value="[email protected]">
<input type="text" placeholder="Name" name="txtName" id="txtName">
<input type="email" placeholder="Email" name="txtEmail" id="txtEmail">
<input type="text" placeholder="Subject" name="txtSubject" id="txtSubject">
<input type="file" placeholder="Text File" name="txtFile" id="txtFile" />
</div>
<div class="col-md-6">
<textarea placeholder="Message" cols="40" rows="10" name="txtText" id="txtText"></textarea>
<button class="btnSend" type="button">Send Your Message</button>
<span id="spanMessage"></span>
</div>
</form>
Ajax Code:
$.ajax({
url: "includes/mail.php", // Url to which the request is send
type: "POST", // Type of request to be send, called as method
data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false, // The content type used when sending data to the server.
cache: false, // To unable request pages to be cached
processData:false, // To send DOMDocument or non processed data file it is set to false
success: function(data) // A function to be called if request succeeds
{
console.log(data);
}
});
PHP Code:
echo '<pre>'; print_r($_REQUEST); print_r($_FILES); die;
Console Result:
Array
(
)
Array
(
)
Using jQuery jQuery v1.11.2
Could you please help me debug the error?
Upvotes: 0
Views: 269
Reputation: 167172
You forgot the enctype="multipart/form-data"
. Please add this to the form tag:
<form class="frmContact" action="#" method="post" enctype="multipart/form-data">
Upvotes: 2