1

谁能告诉我如何使用 dojo 将上传文件发送到 iframe?我尝试了很多插件,但没有一个适合我,例如 $.ajax()dojo.form.upload. Bt 没有什么可以为我工作。谢谢!

好的,我用过这样的东西

dojo.require ( "dojox.form.Uploader"); 
dojo.require ( "dojox.form.uploader.plugins.IFra me"); 
<form method="post" action="UploadFile.php" id="myForm" enctype="multipart/form-data" >
  <input name="uploadedfile" multiple="true" type="file" data- dojo- type="dojox.form.Uploader" label="Select Some Files" id="uploader" /> 
  <input type="submit" label="Submit" data-dojo- type="dijit.form.Button" /> 
</form>
4

1 回答 1

0

我记得当我弄清楚它时很难找到一个端到端的例子(不要认为我最终找到了一个),所以这里有一些我为使它工作所做的事情的片段(dojo 1.9)。

使用类似于以下的模板创建一个模板化小部件:

<div>
    <form method="post" data-dojo-attach-point="form" enctype="multipart/form-data" id="documentForm">
        <input data-dojo-attach-point="fileUploaderNode"/>
    </form>
</div>

像这样实例化您的文件上传器:

this.fileUploader = new dojox.form.Uploader({
                label: 'Select a File',
                multiple: false
            }, this.fileUploaderNode);

然后有一个按钮,做这样的事情:

this.uploadButton = new Button({
                label: 'Upload',
                onClick: lang.hitch(this, function(){
                    iframe.post("someEndpoint", {
                        form: this.form.id
                    }).then(lang.hitch(this, function(data){
                        this._uploadCallback(data);
                    }), lang.hitch(this, function(err){
                        this._errorCallback(err);
                    }));
                })
            });

然后,您需要能够在服务器上解析 multipart/form-data,将文档保存在任何地方并返回 HttpResponse。如果您使用 .NET 4.5,请查看使用 Request.Content.ReadAsMultipartAsync

于 2013-07-02T07:22:13.763 回答