未定義のインデックスのエラーが発生する理由はわかりません。値を php に適切に送信すると思います。または、コードに何か不足していますか?
私が使用するjqueryコードは次のとおりです。
$(function() {
$('button').button();
$('.update-profile-pic').click(function() {
$('#dialog').dialog({
width:350,
modal:true,
buttons: {
'Upload': function() {
$.ajax({
url: 'upload-image.php',
method: 'post',
data: { uploadedfile: $('.profile-pic-name').val().trim() },
success: function(data) {
$('.new-profile-pic').html(data);
}
});
}
}
});
});
});
これが私のhtmlコードです:
<button class="update-profile-pic">Update Profile Picture</button>
<div id="dialog">
<p class="new-profile-pic">
<!--Image should be here-->
</p>
<form enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input class="profile-pic-name" name="uploadedfile" type="file">
</form>
<div>
そして、ここに私のPHPコードがあります:
<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo '<img alt="" src="'.$target_path.'">';
} else{
echo "There was an error uploading the file, please try again!";
}
?>
アップロードをクリックした後の Firebug のコンソールの結果は次のとおりです。
エラー出力の例を次に示します。