2013-04-10 40 views
5

tôi đang làm việc với điều khiển tải lên tệp Extjs4. tôi có cái nhìn với sự kiểm soát tập tin tải lên như-Tải tệp lên bằng 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' 

    }] 
}); 

Và hành động tương ứng trong điều khiển là-

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); 

     }; 
     } 
    }); 

Vì vậy, trên chức năng điều khiển được khi truy xuất tập tin được tải lên và hiển thị nó trong định dạng mã hóa bên trong chức năng onload của người đọc. tức là "console.log (oFREvent.target.result);" dòng hiển thị dữ liệu của tệp được tải lên ở định dạng được mã hóa trong bảng điều khiển. Tôi cần gửi tệp này đến phía máy chủ. Vì vậy, tôi đang vượt qua trên fileobj dưới dạng thông số để lưu trữ dưới dạng-

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

Nhưng chức năng hiển thị tệp của nó không được xác định bên ngoài. Vậy làm thế nào để gửi tập tin này cùng với nội dung của nó sang phía máy chủ? Có cách nào khác để tải lên tập tin trong bộ điều khiển và gửi nó đến máy chủ. Xin ai đó có thể hướng dẫn tôi.

+0

tại sao không chỉ gửi biểu mẫu ??? – dbrin

+0

Thanx thưa ông trả lời. Khi tôi đang cố gắng gửi biểu mẫu bằng cách thêm mã như- "nút: [{ xtype: 'button', nhãn quảng cáo: 'tải lên', hành động: 'tải lên', tên: 'tải lên', văn bản: 'Tải lên', formBind : 'true', handler: function() { var form = this.up ('form'). getForm(); if (form.isValid()) { form.submit ({ url: 'index .php/QuestionBank/Qbpaper/getFile ', thành công: chức năng (fp, o) { Ext.Msg.alert (' Thành công ',' Ảnh của bạn '' + o.result.file + '"đã được tải lên.');}});}}}] " – user1722857

+0

có vẻ ổn, vấn đề là gì? – dbrin

Trả lời

1

Tôi không biết làm thế nào để xử lý fileuplaod đứng về phía php, nhưng phản ứng trở lại từ máy chủ cần phải được text/html mã hóa Xem các tài liệu về vấn đề này: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.Basic-method-hasUpload

cũng dụ PHP FileUpload kịch bản: http://www.w3schools.com/php/php_file_upload.asp

+0

thanx rất nhiều sir ... tôi sẽ giới thiệu các liên kết bạn đã cung cấp. – user1722857