0

Valums FileUploader を使用していますが、ファイルのアップロード後に応答を取得して読み取ることができません。基本的に、成功であろうとエラー メッセージであろうと、onComplete で使用される有用な応答を得ようとしています。

おそらくサーバーを content-type plain/text に設定する必要があるという別の投稿をここで見つけました。確認しましたが、確かにその設定です。

とにかく、チェックするためにさまざまなことを検索して見つけていますが、まだ私の問題を解決しているようには見えません。

アップローダの短縮コードを次に示します。

var uploader = new qq.FileUploaderBasic({

    button: document.getElementById('btnUpChange'),
    action: templateURL+'/upload.php',  
    allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'],

    onSubmit: function(id, fileName) {

       },

    onComplete: function(id, fileName, responseJSON) {

        var fileMsg = responseJSON;

        console.log(fileMsg);

        $('#filemsg').html('<span class="red" >'+fileMsg+'</span>');
        }
    });

アップロード後のコンソールからのテキストは次のとおりです。

"[uploader] xhr - server response received" 
"[uploader] responseText = File is too large"
[object Object]

メッセージを取得しようとするためだけに、意図的に $sizeLimit を小さく設定してエラーをスローします。

アップローダの zip に含まれている php.php ファイルをコピーして名前を変更し、最後に次のように追加しました。

$allowedExtensions = array('jpg', 'jpeg', 'png', 'gif');
$sizeLimit = 4 * 1024;

$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);

// Call handleUpload() with the name of the folder, relative to PHP's getcwd()
$result = $uploader->handleUpload('uploads/', $replaceOldFile = true);

if ($result['success'] !== true) {
    echo $result['error'];
} else {
    echo $result['success'];
}

アップロードが成功すると、onComplete メソッドに 1 が返されます。responseJSON.responseText を使用しようとしましたが、取得したのは「未定義」だけでした。

ご協力ありがとうございました。

4

1 に答える 1