0

未定義のインデックスのエラーが発生する理由はわかりません。値を 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 のコンソールの結果は次のとおりです。

ここに画像の説明を入力

エラー出力の例を次に示します。

ここに画像の説明を入力

4

4 に答える 4

2

以下をお試しいただけますか

       success: function(data) {

         $('.new-profile-pic').html(data.uploadedfile);

          }

以下を確認しましたか?探しているものと似ています

http://www.9lessons.info/2011/08/ajax-image-upload-without-refreshing.html

于 2012-09-23T09:56:59.190 に答える
1

これが機能しない理由は、AJAXを介してファイルを送信できないためです。プラグインまたは非表示のiFrameを使用する必要があります。これについては、 http://ramui.com/articles/ajax-file-upload-using-iframe.htmlを参照してください。

于 2012-09-23T10:02:38.323 に答える
1

$_FILE私は間違っている可能性がありますが、Ajax を使用しているため、PHP コードがグローバルでファイルを検索するとは思いません。代わりに、データは$_POSTグローバルになります (JSON になるためjson_decode()、最初にデータを取得する必要があります)。そこにあるのはファイルの名前だけで、実際のファイルではありません。JavaScript ファイルに新しいFormDataオブジェクトを作成し、ファイル入力への参照を渡す必要があります。

于 2012-09-23T09:54:17.477 に答える
0

ええ、@ richoffrailsは、ファイルが実際にはサーバーにアップロードされていないと言っているので、$_FILES配列で詳細を確認してください。

これを使用するか、インターネット経由でajaxファイルをアップロードするために他の多くのファイルを使用できます

http://www.uploadify.com/

于 2012-09-23T10:04:20.887 に答える