Ajax图像上传php处理


Ajax image upload php handling

我有两个图像上传选项一个用于图标,另一个用于图像,我在jquery中制作了一个自定义ajax图像上传函数,该函数将值发送到php进行处理。我得到图像上传工作正常,即如果图标被点击,只有图标被上传,如果图像被点击,只有图像被上传,我的问题是我得到两个值设置在PHP这是导致错误的未选择(图标或图像)字段。

我的代码是:

<form name="change" enctype="multipart/form-data">
<input name="icon" type="file" />
<input name="image" type="file" />
</form>
<div id="icon"><img src="---" /></div>
<div id="image "><img src="---" /></div>
<div id="result"></div>

jquery (Ajax)

$('#icon img').click(function() {
    $('input[name=image ][type=file]').val(null);
    $('input[name=icon][type=file]').trigger('click');
});
$('#image img').click(function() {
    $('input[name=icon][type=file]').val(null);
    $('input[name=image ][type=file]').trigger('click');
});
$('input[name=icon], input[name=image ]').change(function() {
    change();
}); 

function change(){
var formData = new FormData($('form[name=change]')[0]);
formData.append("CustomField", "This is some extra data");
$.ajax({
    url: 'upload.php',
    type: 'POST',
    data: formData,
    success: (function(data){
    $('#result').html(data);
    }),
    cache: false,
    processData: false,
    contentType: false
});
}   
php

if(isset($_FILES['icon']) && !empty($_FILES['icon']) && $_FILES['icon'] !== ''){
echo 'icon set'.'<br />';
}
else{
echo 'icon not set'.'<br />';
}
if(isset($_FILES['image ']) && !empty($_FILES['image ']) && $_FILES['image '] !== ''){
echo 'image set'.'<br />';
}
else{
echo 'image not set'.'<br />';
}

如果任何一个图标或图像被选择上传,我得到的结果为。

icon set
image set

请查看并建议导致php错误的原因。

谢谢。

键"image"answers"icon"是关于上传的数组键,所以它们是设置的,不是空的,也不是字符串=== "。试试这个:

print_r($_FILES);

看看你是否得到了你所期望的。也可以是formData对象-谷歌"php formData"