0

AJAX と HTML5 を使用して、クライアント コンピューターからサーバー上のフォルダーへのファイルのアップロードを処理しようとしています。

現在、関数alertに加えて以下のメッセージsuccessが実行されることはなく、その理由はわかりません。JS エラーは発生しません。ファイルを保存する php スクリプトとフォルダーの両方に、完全な読み取り/書き込みアクセス許可が付与されます。

エラーを表示せずにこれを機能させることは非常に困難です。

この問題の原因を特定し、いくつかのエラーまたは少なくとも警告メッセージを実行するための支援に感謝します。

よろしくお願いします!

JQuery

    $.ajax({
        url: 'upload.php',  //server script to process data
        type: 'POST',
        xhr: function() {  // custom xhr
            myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){ // check if upload property exists
                myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
            }
            return myXhr;
        },
        //Ajax events
        success: function(data){
            alert("OK");
            $('body').html(data);
        },
        // Form data
        data: formData,
        //Options to tell JQuery not to process data or worry about content-type
        cache: false,
        contentType: false,
        processData: false

    });

HTML

    <form enctype="multipart/form-data">
    <input name="file" type="file" />
    <input type="button" value="Upload" />
    </form>
    <progress></progress>

アップロード.php

<?php
if ($_FILES["file"]["name"] != NULL) {
  if (file_exists("uploads/" . $_FILES["file"]["name"]))
    echo $_FILES["file"]["name"] . " already exists. ";
  else
    move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
}


?>
4

1 に答える 1

1

エラー ハンドラも追加します。

$.ajax({
  success: function(data){
    console.log("OK");
    $('body').html(data);
  },
  error: function(xhr, textStatus, errorThrown){
    console.log('An error has occurred!');
    console.log(textStatus);
    console.log(errorThrown);
  }
});

Javascript は、失敗した ajax リクエストに対してエラーをスローしないため、自分でキャッチする必要があります。

于 2013-03-13T00:40:05.147 に答える