0

ファイルのアップロードとして入力の 1 つを含むフォームがあります。jquery ajaxで呼び出して他のフォームフィールドを検証し、フォームの上のdivにエラーメッセージを表示するphpスクリプトがあります。次のスクリプトに非常によく似た php エコーに基づいて、.html() jquery 関数を使用してこれを行います。

ファイルのアップロードを検証するためのphpスクリプトも作成しました。次のようになります。

<?php

    $errorList = array();
    $inc = 0;


    $allowedExt = array("jpg", "jpeg", "gif", "png");
    $fileExt = end(explode(".", $_FILES['imgUpload']['name']));
    if((($_FILES['imgUpload']['type'] == 'image/gif')
     || ($_FILES['imgUpload']['type'] == 'image/pnjpeg')
     || ($_FILES['imgUpload']['type'] == 'image/jpeg'))
     && ($_FILES['imgUpload']['size'] < 2000000)
     && in_array($fileExt, $allowedExt)){
    if($_FILES['imgUpload']['error'] > 0)){

        $errorList[$inc++] = '<span class="error"> File error:'. $_FILES['imgUpload']['error'].'</span>';
    }

    }
    else{
    $errorList[$inc++] = '<span class="error"> Invalid file </span>';

    }

    echo '<ul class="errorList">';
    for($i =0; $i<$inc; $i++){
        echo $errorList[$i];

    }
    echo '</ul>';


?>

このスクリプトにあるエラー メッセージを他のスクリプトと同じように表示したいのですが、読んでみると ajax を使用してファイルのアップロードができません。

誰かがこれについてどうすればよいかについて何か提案がありますか?

4

1 に答える 1

0

Ajaxによるファイルアップロードはできません。しかし、IFrame を使用して、Ajax のように見せることができます。

オプションは次のとおりです。

  • Google によって広められた隠し iframe トリック。これを自分で実装すると、いくつかの不格好なものになる可能性があるため、jQuery の人気のあるフォームプラグインなどのプラグインを備えた jQuery などのライブラリがあり、これを自動化するため、使用時に内部が汚れていると感じる必要はありません。
  • Flash を使用してプロセスを容易にします。最も注目すべきは、SWFUpload が非常に人気があることです。すべてが同じであれば、おそらくこれよりも Javascript ソリューションを使用しますが、過去にこれを使用して成功しました。このソリューションの優れた点は、インジケーターやサムネイルの読み込みなど、より優れたインターフェイスが付属していることです。ただし、この時点で、Flash + Javascript を利用できるようにするようユーザーに求めていますが、これは状況によっては機能しない可能性があります。
  • Flash の代わりに Silverlight を使用しますが、他の 2 つのソリューションよりも浸透率がはるかに低いため、これを実行可能なソリューションとは考えていません。

あなたの助けのために、この例を見てください

http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

Iframeオプションを使用しています

于 2012-09-04T04:13:42.563 に答える