jQuery的文件上传的POST数据追加发行文件上传、数据、jQuery、POST

2023-09-10 21:58:06 作者:中意你

我用我的骨干应用程序的jQuery文件上传。

  

我在POST数据所面临的问题也就是当我上传的数据则只有文件   所选择的发表对象和一个 ID将被添加这是   在FORMDATA initializeFileUpload函数初始化这initializeFileUpload功能负载的OnLoad

this.ui.uploadAppFile 是jquery对象

  initializeFileUpload:函数(){
                VAR的=这一点,
                    文件=;
                VAR的选择= {
                    网址:FSGlobals.baseURL +请求/ req_bu_files /文件',
                    maxFileSize为:5000000 // 5MB
                    FORMDATA:{
                      标识:that.requestHeaderMod.get(ID),
                     },
                    地址:功能(即数据){
                        文件=(数据&安培;&放大器; data.files [0]放大器;&放大器; data.files [0]。名称)|| ;
                        that.manualPostData =数据;
                        that.ui.filePlaceholder.val(文件).change();
                    }
                };

                如果($('HTML')。hasClass(IE9')|| $('HTML')。hasClass(LT-IE9)){
                    options.forceIframeTransport = TRUE;
                } 其他 {
                    options.dataType ='json的';
                }

                this.ui.uploadAppFile.fileupload(选件);
            }
 

我有一个按钮提交,并在提交时的的我要增加两个ID在日志对象。的

  UploadAction:函数(){
                VAR的=这一点;
                this.manualPostData.submit()。
                完成(功能(数据,textStatus,jqXHR){

                    })
                    .fail(功能(jqXHR,textStatus,errorThrown){

                    });
               }
 

15 个最好的 jQuery 文件上传插件

现在我试图找到FORMDATA在 this.manualPostData ,但我找不到 FORMDATA 在里面。

  

提交后,我看到网络它显示与文件[]和Id FORMDATA对象,它在声明   initializeFileUpload

解决方案

我发现了一个解决方案:

  

在提交传递自己的价值观为 FORMDATA 。但你可以   看到问题还有一个方法,即 initializeFileUpload   你必须初始化你的文件了装载机的设置和所有的东西。   因为如果没有则在提交时,你不明白    this.manualPostData 作为文件了装载机对象

  UploadAction:函数(){

            VAR的=这一点;
            this.manualPostData.formData = {
                的requestId:that.requestHeaderMod.get(ID),
                状态:假的,
                APPID:this.ui.appListSelect.select2(VAL),
                appDimensionId:this.ui.appDimListSelect.select2(VAL),
                行动code:this.ui.action codeSelect.select2(VAL)
            }
            this.manualPostData.submit()
           .done(功能(数据,textStatus,jqXHR){
                   //
            })
            .fail(功能(jqXHR,textStatus,errorThrown){
                    //失败

            });
 

和传递FORMDATA = {}在initializeFileUpload其他明智的,你必须使用

  $扩展(旧的对象,新对象);
 

在提交时

I am using jQuery file uploader in my Backbone application.

I am facing problem in POST data i.e when I upload data then only file which is selected will be added in POST object and one id which is initialized in initializeFileUpload function in formData and this initializeFileUpload function is load in OnLoad

this.ui.uploadAppFile is jquery object

initializeFileUpload: function() {
                var that = this,
                    file = "";
                var options = {
                    url: FSGlobals.baseURL + 'requests/req_bu_files/file',
                    maxFileSize: 5000000, // 5MB
                    formData: {
                      "Id": that.requestHeaderMod.get("id"),
                     },
                    add: function(e, data) {
                        file = (data && data.files[0] && data.files[0].name) || "";
                        that.manualPostData = data;
                        that.ui.filePlaceholder.val(file).change();
                    }
                };

                if ($('html').hasClass('ie9') || $('html').hasClass('lt-ie9')) {
                    options.forceIframeTransport = true;
                } else {
                    options.dataType = 'json';
                }

                this.ui.uploadAppFile.fileupload(options);
            }

I have one button Submit and at submit time I have to add two more id's in Post Object.

UploadAction: function() {
                var that = this;
                this.manualPostData.submit().
                done(function(data, textStatus, jqXHR) {

                    })
                    .fail(function(jqXHR, textStatus, errorThrown) {

                    });
               }

Now I try to find formData in this.manualPostData but I can't find formData in it.

After Submit I see in Network it's showing formData object with file[] and Id which is declared in initializeFileUpload

解决方案

I found One solution:

Before submit pass your values to formData. But as you can see in question there is one more method i.e initializeFileUpload you have to initialize your file up-loader setting and all stuff. because if not then at submit time you dont get this.manualPostData As file up-loader object

UploadAction: function() {

            var that = this;
            this.manualPostData.formData = {
                "requestId": that.requestHeaderMod.get("id"),
                "status": false,
                "appId": this.ui.appListSelect.select2("val"),
                "appDimensionId": this.ui.appDimListSelect.select2("val"),
                "actionCode": this.ui.actionCodeSelect.select2("val")
            }
            this.manualPostData.submit()
           .done(function(data, textStatus, jqXHR) {
                   //
            })
            .fail(function(jqXHR, textStatus, errorThrown) {
                    //Fail

            });

And pass Formdata={} in initializeFileUpload other wise you have to use

$.extend(OLd Object, New Object);

at submit time