【发布时间】:2015-05-23 06:22:15
【问题描述】:
我正在使用 ajax 文件上传 javascript 和 php 脚本来上传图像。它与 $_FILES 一起工作令人满意,但我需要向处理脚本发送一些额外的数据。表单 HTML 如下所示:
<form id="image1" action="" method="post" enctype="multipart/form-data">
<label>image 1?</label>
<p><input type="file" class="saveImage" name="image1" value="<?php echo $something; ?>" id="<?php echo $id; ?>" additional_info="some data" /></p>
<p> <input type="submit" value="Upload" class="submit" /></p>
</form>
我需要能够传递一个变量 id 和一些其他数据,将其称为“additional_data”到 php 脚本,然后在我的 php 脚本中使用$additional_data = $_POST['additional_data'] 处理它。我使用的javascript是:
<script>
$(document).ready(function (e) {
$("#image1").on('submit',(function(e) {
e.preventDefault();
$("#message").empty();
$('#loading').show();
var DATA=$(this).val();
var ID=$(this).attr('id');
var ADDL=$(this).attr('additional_data');
var dataString = 'image1='+DATA+'&id='+ID+'&additional_info='+ADDL;
$.ajax({
url: "uploadFile.php",
type: "POST",
// data: new FormData(this),
data: new FormData(this,dataString),
contentType: false,
cache: false,
processData:false,
success: function(data)
{
$('#loading').hide();
$("#message").html(data);
}
});
}));
});
</script>
它不发送 dataString,只发送 FILES 数组。
【问题讨论】:
-
为什么不把其他数据放到其他隐藏字段中呢?
标签: javascript php jquery ajax file-upload