1

大家好,首先非常感谢您阅读我!我将 Dojo 1.7.2 与 Domino 8.5 服务器一起使用,将带有多个用户选择的文件的表单数据提交到数据库。

我在dojox.form.Uploader仅 IE(7 和 8)环境中使用 Flash 插件(启用多个文件选择)。(由于“访问被拒绝”错误,iFrame 插件无法与我们的 IE 一起使用)

一个文件一切正常,但是一旦用户想要上传多个文件,POST 的提交次数与文件数量一样多。

例如,如果用户想要发送他的数据 + 3 个选定的文件,在他单击一次我的“提交”按钮后,Domino 服务器将收到 3 个 POST(每个包含一个文件和表单数据),导致 3 个不完整的记录:所有表单数据都存在于每条记录中,只有 3 个文件中的一个: 记录 1:相同的表单数据和文件 1 记录 2:相同的表单数据和文件 2 记录 3:相同的表单数据和文件 3

我想收到 1 个 POST :表单数据和 3 个文件

我不知道这是否是它应该工作的方式(在http://dojotoolkit.org/reference-guide/1.7/dojox/form/Uploader.html#id7http上找不到任何详细信息 ://dojotoolkit.org/documentation/tutorials/1.7/uploader/)或者如果我设置错误。

非常感谢任何帮助!

附加信息:Domino 的 HTML 文件上传名称非常具体,并且包含%$(例如:) ,%%File.c1257b1a0053689e.fdbe327b47e4b280c1257b35005b38e5.$Body.0.33B4所以我不得不使用encodeURIComponent它们。'flash'出于测试目的,我通过从插件切换到“”成功地使其与 Firefox 上的 iFrame 插件一起使用iframe

// Dijit form containing dojox.form.Uploader
this._oForm = new dijit.form.Form({ 
    name: "_mMsg",  
    method: "POST",  
    action: "/mMsg?CreateDocument",  
    encType: 'multipart/form-data',  
    onSubmit: function(){  
    return true;  
}, "idForm_" + sMsgId);  

this._oFileUploader = new dojox.form.Uploader({  
    id: "idFileUploader_" + sMsgId,  
    label: "Add files",  
    iconClass: "ButtonAttachFile",  
    multiple: true,  
    force: 'flash',  
    swfPath: dojo.baseUrl + '../dojox/form/resources/uploader.swf?Open',  
    serverTimeout: 180000,  
    isDebug: true,  
    devMode: true,  
    deferredUploading: 10, //Max # files uploaded simultaneously  
    fieldname: encodeURIComponent(sFileUploadControlName),  
    name: encodeURIComponent(sFileUploadControlName),  
    flashFieldName: encodeURIComponent(sFileUploadControlName),  
    "class": "FileUploader",  
    onComplete: dojo.hitch(this, '_onCompleteUploadFlash'),  
    onError: dojo.hitch(this, '_onErrorUploadFlash')  
});  

var oForm = {  
    Form: "mFile",  
    MsgId: sMsgId,  
    MsgDbKey: sMsgDbKey  
    Body:sBody,  
    Subject:sSubject  
};  
this._oFileUploader.upload(oForm);  

非常感谢提前!

4

0 回答 0