我有兩個圖像上傳選項一個圖標和另一個圖像,我做了一個自定義ajax圖像上傳功能在jQuery中,它發送值處理PHP。我得到圖像上傳正常工作,即如果圖標被點擊只有圖標上傳,如果圖像被點擊只有圖像被昇華,我的問題是我得到這兩個值設置在PHP中導致錯誤未選中(圖標或圖像)字段。Ajax圖像上傳php處理
我的代碼是:
HTML
<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(阿賈克斯)
$('#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導致錯誤。
謝謝。
您是否嘗試過&&空($ _ FILES [ '圖標']),即中間狀態!? –