0

アイコン用と画像用の2つの画像アップロードオプションがあります。jqueryでカスタム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 />';
}

アップロードするアイコンまたは画像を 1 つ選択すると、結果が得られます。

icon set
image set

PHPで何がエラーを引き起こしているのかを見て提案してください。

ありがとう。

4

1 に答える 1

0

キー "image" と "icon" は、アップロードに関する配列のキーであるため、空ではなく、文字列 === "" ではなく設定されます。これを試して:

print_r($_FILES);

そして、期待どおりの結果が得られるかどうかを確認してください。また、formData オブジェクトの場合もあります - Google は「php formData」

于 2012-12-28T06:31:35.827 に答える