0

Dojo Uploader ボタンを作成したいと考えています。

ユーザーがファイルの選択を終了したら、すぐにファイルをサーバーにアップロードします (送信をクリックするのを待ちません)。

これが私のコードです:

<script type="text/javascript">
require(["dojo/parser", "dojox/form/Uploader", "dojox/form/uploader/plugins/IFrame", "dojox/form/uploader/FileList", "dojo/domReady!"],
   function(parser) {
      parser.parse();
});
</script>

HTML ドキュメントの本文:

<input name="restoreFile" multiple="false" type="file" id="restoreBtn"
       data-dojo-type="dojox/form/Uploader"
       data-dojo-props='label: "Upload", 
                        url: "<s:url action="restore-backup" />", 
                        uploadOnSelect: "true"' />
<div id="fileList" data-dojo-type="dojox/form/uploader/FileList" 
     data-dojo-props='uploaderId: "restoreBtn"'></div>

これらのタグを両方とも form タグに入れてみましたが、動作に変化はありませんでした。

アップローダーをクリックすると、ファイル ピッカーが表示されます。ファイルを選択して [開く] をクリックすると、選択したファイルが FileList に表示されますが、サーバーには何も送信されません。

アップローダ プラグインの 3 つすべて、HTML5 (IE ではサポートされていませんが、Chrome でも期待どおりに動作しません)、IFrame、および Flash を要求してみました。

uploadOnSelect がどのように機能するかを誤解していますか? ファイルを選択した後、アップローダーがファイルをアップロードしないのはなぜですか?

4

3 に答える 3

0

単に情報; これがあなたの問題に当てはまるかどうかはわかりませんが、アップローダーはレガシーローダー(同期XHR以前の1.7ローダー)と一緒に使用すると最もよく機能します。これは、作成者がプラグインのアーキテクチャ(flash / iframe / html5)を選択した方法によるものです。ただし、イベント処理を台無しにしないでください

  • 私が考えているのは、プログラムコンポーネントとして設定してみてください-dojo.readyとdojo.parserの両方がタスクを完了した後です。

または、バージョン1.6が機能するかどうか、またはdojo.config.async=falseを設定すると役立つかどうかをテストします。

于 2012-11-07T01:06:25.443 に答える
0

dojox.form.Uploader を dojox.form.uploader.FileList と一緒に使用できます。これら2つを次のように宣言するだけです。

up = new dojox.form.Uploader({
            label: 'Select files',
            multiple: true,
            class:"browseButton",
            url: "UploadFile.php"
        }).placeAt(form);

        list = new dojox.form.uploader.FileList({
            uploader: up
        }).placeAt(form);

        btn = new Button({
            label: 'upload',
            onClick: function() {
                up.upload();
            }
        }).placeAt(form);

        btn.startup();
        up.startup();
        list.startup();
于 2013-05-13T06:55:31.473 に答える