dojox.form.Uploaderのtips
dojox.form.Uploaderを使っててほいほいハマるので、ほぼ備忘録としてのメモ。
* POST時に他のデータも渡したい
uploadWithFormData()を使う。uploadOnSelectをtrueにすると勝手にsubmitされてしまうので、ファイルを選択されたらすぐにsubmitしたければ
<button data-dojo-type="dojox.form.Uploader" data-dojo-props="
id: 'uploader'
, name: 'uploaded'
, multiple: false
, uploadOnSelect: false
, url: 'xxx'
, onChange: function(){
doUpload();
}">upload now!</button>
function doUpload(){
var uploader = dijit.byId("uploader");
uploader.onComplete = function(array){
if (array[0] == "succeeded"){
// succeeded
}
else {
// failed
}
uploader.reset();
};
uploader.uploadWithFormData({
"hoge": "hoehoe"
});
}
とやっておけば概ねおk
* 1回目は動いたけど、2回目が動かない
ファイル名が同じだとonChangeが発生しない。同じファイル名でもsubmitしたければ、onCompleteの最後のほうでreset()を呼ぶ。