2012-12-28 4 views
0

이미지 업로드 옵션 중 하나는 아이콘 용이고 다른 하나는 이미지 용입니다. jquery에서 커스텀 아약스 이미지 업로드 기능을 만들었습니다. jQuery는 처리를 위해 PHP로 값을 전송합니다. 나는 제대로 작동하도록 이미지를 업로드하고있다. ie 아이콘 만 클릭하면 아이콘이 업로드되고 이미지가 클릭되면 이미지가 올라가고, 내 문제는 내가 선택하지 않은 오류를 일으키는 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에서 오류의 원인을 확인하고 제안하십시오.

감사합니다.

+0

중간 상태 인 &&! empty ($ _ FILES [ '아이콘'])을 시도하셨습니까? –

답변

1

"이미지"및 "아이콘"키는 업로드에 대한 키의 배열이므로 비어 있지 않으며 문자열이 아닌 === "설정"됩니다. 이것을 시도하십시오 :

print_r($_FILES); 

기대하고있는 것이 있는지보십시오. 또한 formData 객체 일 수 있습니다 - Google for "php formData"

+0

마침내이게'if (isset ($ _ FILES [ 'icon']) &&! empty ($ _ FILES [ 'icon'] [ 'name']))'감사합니다. –