【发布时间】:2019-10-17 18:30:55
【问题描述】:
我有一个表单,我需要在其中发送用户的姓名以及他的个人资料图片。所以我使用 HTML & Bootstrap 创建了下面的表单 -
<form action="" method="post" id="demoForm" enctype="multipart/form-data">
<div class="form-group">
<label for="">Upload file</label>
<input type="file" name="file" id="file" class="form-control">
</div>
<div class="form-group">
<label for="">Your Name</label>
<input type="text" name="name" id="name" class="form-control">
</div>
<div class="form-group">
<input type="submit" name="save" id="save" value="Save" class="form-control btn btn-success">
</div>
</form>
<div id="result"></div>
现在我需要使用 PHP 将此数据发送到我的服务器。所以我使用 jQuery 编写了以下 Ajax 代码 -
$(document).ready(function(){
$('#demoForm').submit(function(e){
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: "ajax.php",
type: "POST",
data: formData,
contentType : false,
processData: false,
success: function(data){
$('#result').html(data);
}
});
});
});
现在我在 ajax.php 文件中编写了以下 PHP 代码 -
if(isset($_POST['save'])){
$name = $_POST['name'];
$file = $_FILES['file']['name'];
if(!empty($file) && !empty($name)){
$fileName = $_FILES['file']['name'];
$tmp = $_FILES['file']['tmp_name'];
$upload = move_uploaded_file($tmp,'uploads/'.$fileName);
if($upload){
echo "<h2>".$name.", your file has been uploaded successfully!</h2>";
}else{
echo "<h2>Something went wrong!</h2>";
}
}else{echo "File cannot be empty.";}
}else{echo "There is a problem";}
现在,问题是我没有从 php 文件中得到任何响应。换句话说,ajax.php 文件没有从 index.php 文件中接收通过 Ajax 发送的数据。任何人都可以通过指出我犯了什么错误来帮助我吗?如果有任何解决方案,请与您分享。谢谢。
【问题讨论】:
标签: php jquery ajax multipartform-data jsajaxfileuploader