作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用这个ajax代码来提交表单并上传多个输入文件。我想通过ajax发送所有表单数据。通过ajax发送文本输入成功,但文件输入未成功!如何更改此代码?
$("#add_order").click(function () {
//*****get data input
var formData = new FormData();
formData.append( 'action', 'add_order');
formData.append( 'customer_name', $('input[name=customer_name]').val());
formData.append( 'date', $('input[name=date]').val());
formData.append( 'order_status', $('input:radio[name=order_stautus]').val());
formData.append( 'total_price', $('input[name=totalprice]').val());
formData.append( 'quits', $('input[name=quits]').val());
formData.append( 'debt', $('input[name=debt]').val());
formData.append( 'desc', $('#desc').val());
formData.append( 'desc2', $('#desc2').val());
$.each($("input[type=file]"), function(i, obj) {
$.each(obj.files,function(j,file){
formData.append('photo['+i+']', file);
});
});
$.ajax({
url: "includes/ajax/ajax.php",
data: formData,
processData: false,
contentType: 'multipart/form-data',
type: 'POST',
dataType:'json',
success: function(response){
//load json data from server and output message
if(response.type == 'error'){ //load json data from server and output message
output = '<div class="alert alert-danger">'+response.text+'</div>';
}else{
output = '<div class="alert alert-danger">'+response.text+'</div>';
}
$("#results").append(output).slideDown();
}
});
});
获取表单数据的PHP代码:
if($_POST['action']=='add_order'){
$customer_id = 1;
$date = $_POST['date'];
$status = $_POST['order_status'];
$total_price = $_POST['total_price'];
$quits = $_POST['quits'];
$debt = $_POST['debt'];
$desc = $_POST['desc'];
$desc2 = $_POST['desc2'];
for($i=0; $i<count($_FILES['photo']['name']); $i++) {
//Get the temp file path
$tmpFilePath = $_FILES['photo']['tmp_name'][$i];
//Make sure we have a filepath
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "../../uploads/orders/" . $_FILES['photo']['name'][$i];
//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//Handle other code here
}
}
}
formData控制台.log:
最佳答案
根据this , contentType
必须设置为 false 才能上传 ajax 文件。
也许可以尝试将所有文件命名为 photo[]
而不是 photo[n]
,以便让您的 PHP 服务器处理数组转换。请参阅http://php.net/manual/en/features.file-upload.multiple.php .
关于javascript - AJAX上传文件和文本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550575/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!