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
});