1

ファイルのアップロードをより快適にするために、私はajaxリクエストを偽造しています。つまり、ユーザーが[送信]をクリックすると、フォームに読み込み中のグラフィックが表示されなくなり、表示秒後にページが更新されて、newleyアップロード画像が表示されます。

ただし、ファイルのアップロードにjqueryを追加すると、常に同じエラーが返されるため、

アップロードするファイルを選択していません。どうしてこれなの?これは私のフォームです、

<div id="picture_upload">
        <div class="loading"></div>
        <?php echo form_open_multipart('my_profile/do_upload'); ?>

        <strong>Choose pictures to upload</strong>
        <p>Max file size: 1MB .jpeg, .gif, .png or .bmp</p>
        <input type="file" name="userfile" />
    </div>
    <!--<div id="webcam_upload">
        <p>Hello</p>
    </div>-->
</div>
<div id="bottom"><table><tr><td><input type="submit" id="submit_upload" value="Upload a picture" class="button green rounded_5 small" /></td><td>or</td><td><a href="#" id="close_modal" />Cancel</a></td></tr></table></div>

と私のjs、

$("#submit_upload").click(function(e){
    //alert("here");
    setTimeout(function() { $("#picture_upload form").submit();}, 6000);
    $("#picture_upload").children().hide();
    $(".loading").show();
    setTimeout( function() {  location=$("#picture_upload form").attr('action') }, 1500 );
    return false;
});

アップロード機能は、codeigniterからの基本的なアップロード機能です。

4

3 に答える 3

3

セキュリティ上の理由から、XmlHttpRequestオブジェクト(AJAX)を使用してファイルをアップロードすることはできません。

代替ソリューションは次のとおりです。

  • ファイル送信フォームをiframeにロードし、JSで投稿します
  • フラッシュファイルアップローダーを使用する
  • HTML5を使用する

非常に人気があるように見えるjQueryプラグインは次のとおりです:http ://www.uploadify.com/

于 2012-05-31T12:39:13.927 に答える
1

このようにしてみてください、

$("#submit_upload").click(function(e){
    //alert("here");
    setTimeout(function() { $("#picture_upload form").submit();}, 6000);
    $("#picture_upload").children().hide();
    $(".loading").show();
    return false;
});

そして、phpを使用してページをリダイレクト/リロードします

header('Location: URL_TO_REDIRECT'); //put it in your end of upload script in php file

PHPからリダイレクトしたくない場合は、次を使用できます。

于 2012-05-31T12:48:41.893 に答える
0

jQueryを使用して独自のアップロードを作成する方法を学びたい場合は、ここに良い記事があります-http://www.peachpit.com/articles/article.aspx?p= 1766159

于 2012-05-31T13:15:16.943 に答える