-1

Uploadifyを使用してphp(codeigniter)に画像をアップロードしています。uploadifyパッケージに付属するサンプルphpファイルでテストされています。できます。ただし、onUploadErrorをトリガーできません。サンプルのphpコードには次のものがあります。

if (in_array($file_ext,$fileTypes)) {
    $newFileName = mt_rand() . time() . '.' . $file_ext;
    $targetFile = rtrim($targetPath,'/') . '/' . $newFileName;
    move_uploaded_file($tempFile,$targetFile);
    echo $newFileName;
} else {
    echo 'Invalid file type.';
}

jsは次のように非常に単純です。

$('#file_upload').uploadify({
        'fileTypeDesc' : 'Image Files',
        'fileTypeExts' : '*.gif; *.jpg; *.jpeg; *.png',
        'swf'      : '/static/uploadify/uploadify.swf',
        'uploader'      : '/static/uploadify/uploadify.php',
        'onUploadError' : function(file, errorCode, errorMsg, errorString) {
            console.log('The file ' + file.name + ' errorCode ' + errorCode + ' errorMsg ' + errorMsg + ' errorString ' + errorString);
        },
        'onUploadSuccess' : function(file, data, response) {
            console.log(data);
        }
    });

Invalid file type.がフロントエンドにエコーされたとき。のonUploadSuccess代わりにトリガーされonUploadErrorます。phpからのエラーがあることをアップロードを盗むためのインジケーターがないことは私には奇妙に思えます。

トリガーする唯一の方法onUploadErrorは、エコーする前に200以外のhttpヘッダーを設定することです。ただし、onUploadError関数の引数errorCode、、errorMsgerrorStringhttpコードであり、エコーコンテンツ(エラーメッセージ)は失われます。

更新

質問のタイトルを変更して、解決しようとしていた実際の問題を説明しました。そして私はそれ以来解決策を見つけました。

4

1 に答える 1

0

ようやくこの問題に取り組むことができました。これを解決するための手順を次に示します。

onUploadErrorまず、ファイルが正常にアップロードされたため、起動されないという問題があります

次に、バックエンドから間違った画像サイズが検出されても、アップロードが成功すると、uploadify キュー制限とアップロード制限が適宜更新されます。

したがって、解決策は、バックエンドが画像の寸法をチェックし、ユーザーに表示されるエラー メッセージを含む json データで応答することです。また、uploadify をリセットします。実際には、swfupload、変数ですsuccessful_uploads。これにより、キュー制限またはアップロード制限が台無しにならないようにします。サンプルコード:

'onUploadSuccess' : function(file, data, response) {
    var obj = eval('(' + data + ')');
    if ( obj.success ) { alert('uploaded') }
    else { 
        var stats = this.getStats();
        this.setStats({successful_uploads: stats.successful_uploads - 1});
    }
 }

swfupload setStats メソッドを参照してくださいhttp://demo.swfupload.org/Documentation/#setStats

于 2012-09-25T04:04:34.533 に答える