1

IE で Dojo 1.6 dojox.form.Uploader を使用しています。これは dojox.form.uploader.plugins.Flash プラグインを使用してアップロードを行います。Firefox では HTML5 が使用されており、次のように呼び出して、アップロードと共に他のフォーム データを送信できます。

uploaderDijit.upload({paramName:"paramValue"});

ただし、IE では、Flash バージョンのアップロード関数は formData 引数を取りません。Flash プラグインを使用して、ファイルのアップロードと一緒に他のデータを送信する方法はありますか?

ここに私のサンプルコードがあります:

dojo.require("dojox.form.Uploader");
dojo.require("dojox.form.uploader.FileList");
dojo.require("dojox.form.uploader.plugins.Flash");

function doUpload(){
     dijit.byId("uploader").upload({param: "paramValue"});
}

function onload(){
     // create uploader & file list dijits
     var uploaderDijit = new dojox.form.Uploader({
          id: "uploader",
          url: "MyApp/MyServlet",
          multiple: true
     });
     var fileListDijit = new dojox.form.uploader.FileList({uploader:uploaderDijit});

     // insert dijits into html
     var formNode = dojo.byId("multiUploadForm");
     var uploaderDiv = document.createElement("div");
     formNode.appendChild(uploaderDiv);
     uploaderDiv.appendChild(uploaderDijit.domNode);
     uploaderDiv.appendChild(fileListDijit.domNode);
}

dojo.addOnLoad(onload);

と:

<form id="multiUploadForm" method="post" enctype="multipart/form-data" encoding="multipart/form-data"></form>
<button onclick="javascript:doUpload();">Upload</button>

入力ノードをフォームに追加しようとしました:

<form id="multiUploadForm" method="post" enctype="multipart/form-data" encoding="multipart/form-data">
     <input type="hidden" name="param" value="paramValue"/>
</form>

また、パラメーターをURLに追加しようとしましたが、サイコロはありません:

var uploaderDijit = new dojox.form.Uploader({
     id: "uploader",
     url: "MyApp/MyServlet?param=paramValue",
     multiple: true
});
4

1 に答える 1

0

他に何かが間違っていると思います..以下は(1.7.2 srcからですが)最初のコードブロックのエントリポイントであると呼ばれる関数です。を使用する場合は、100% 確実に GET パラメータを設定する必要がありますurl: "MyApp/MyServlet?param=paramValue"

uploadFlash: function(/*Object ? */formData){
        // summary:
        //              Uploads selected files. Alias "upload()" should be used instead.
        // tags:
        //              private
        this.onBegin(this.getFileList());
        formData.returnType = "F";
        this.flashMovie.doUpload(formData);
},
于 2012-05-13T11:14:43.470 に答える