2013-04-10 64 views
5

我正在Extjs4文件上傳控制工作。我有在控制器視圖與文件上載控制原樣文件上傳與extjs4

Ext.define('Balaee.view.kp.dnycontent.Content', 
{ 
    extend:'Ext.form.Panel', 
    requires:[ 
       'Balaee.view.kp.dnycontent.ContentView' 
       ], 
    id:'ContentId', 
    alias:'widget.Content', 
    enctype : 'multipart/form-data', 
    title:'This day in a history', 
    items:[ 

    { 
     xtype: 'fileuploadfield', 
     hideLabel: true, 
     emptyText: 'Select a file to upload...', 
     //inputType: 'file', 
     id: 'upfile', 
     width: 220 
}], 
    buttons: [{ 
     xtype : 'button', 
     fieldlabel:'upload', 
     action:'upload', 
     name:'upload', 
     text: 'Upload', 
     formBind:'true' 

    }] 
}); 

和相應動作是 -

getUpload : function() { 

     var file10 = Ext.getCmp('ContentId').getEl().down('input[type=file]').dom.files[0]; 

     var reader = new FileReader(); 
     reader.onload = function(oFREvent) { 
      fileobj=oFREvent.target.result; 
      console.log(oFREvent.target.result); 

     }; 
     } 
    }); 

因此上述控制器的功能是retriving上傳的文件和以編碼格式顯示它讀取器的onload函數內。即「console.log(oFREvent.target.result);」行在控制檯中以編碼格式顯示上傳的文件數據。我需要將這個文件發送到服務器端。所以我合格以上FileObj文件作爲參數傳遞給存儲原樣

var storeObj=this.getStore('kp.DnycontentStore'); 
     storeObj.load({ 
     params:{ 
     data:fileobj 
     }, 
     callback: function(records,operation,success){ 
      console.log("send"); 
     }, 
     scope:this 
     }) 

但其顯示FileObj文件爲未定義外reader.onload功能。那麼如何將這個文件和它的內容一起發送到服務器端呢?有沒有其他方法可以將控制器上傳的文件發送到服務器。請有人指導我。

+0

爲什麼不只是提交表單??? – dbrin 2013-04-10 20:09:15

+0

Thanx先生的答覆。當我嘗試通過添加代碼來提交表單時 - 「按鈕:['012'] {''''按鈕',' 'fieldlabel:'upload',action:'upload',name:'upload',text:'Upload',formBind :'true', handler:function(){ var form = this.up('form')。getForm(); if(form.isValid()){ form.submit({0} .php/QuestionBank/Qbpaper/getFile', 成功:function(fp,o){ Ext.Msg.alert('Success','Your photo''+ o.result.file +'「has been uploaded。' );}});}}}]「 – user1722857 2013-04-12 06:07:08

+0

看起來不錯,最新的問題是什麼? – dbrin 2013-04-12 06:28:12

回答