Tôi đang cố gắng tải lên tệp (tính từ bây giờ của bất kỳ tiện ích mở rộng nào) trong extjs. Tôi có một mô hình và cửa hàng. tệp tải lên xảy ra từ cửa sổ và tôi không có biểu mẫu trong cửa sổ. Tất cả các ví dụ tôi đã thử trong net là với form.submit(). Tôi thay vì sử dụng và Ajax gọi như dưới đây để gửi dữ liệu đến máy chủ.Tải lên tệp trong extjs 4.2 mà không cần form.submit()
Ext.Ajax.request({
url : 'qaf/saveSetupDetails.action',
params : {
'data' : recordsToSend
},
failure : function(response){
//console.log('error connecting controller');
},
success : function(response){
//console.log('successfully submitted');
}
});
Bản ghi để gửi dữ liệu được nhận như sau.
var store = Ext.getStore('SomeStore');
var modifiedRecords = store.getModifiedRecords();
var recordsToSend = [];
if(modifiedRecords.length > 0){
Ext.each(modifiedRecords, function(record){
recordsToSend.push(record.data);//I'm sure that this is so dump but this is how I do it for other records which are string and not sure how to do it for a file...
});
}
Ext.USE_NATIVE_JSON = true;
recordsToSend = Ext.encode(recordsToSend);
Trong khi thiết lập kỷ lục trong mô hình, tôi sử dụng mã dưới đây ..
var rec = Ext.create('QAF.model.MyModel');
rec.set('modelField',Ext.getCmp('fileUploadCompID').value);
tôi nhận được một lỗi 500 trạng thái với các phản ứng "Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.commons.CommonsMultipartFile]"
Tôi chắc chắn rằng đây là vì cách tôi đặt giá trị cho mô hình là Ext.getCmp('fileUploadCompID').value
cung cấp tên tệp. Vui lòng cho tôi biết cách đặt tệp cho mô hình và loại dữ liệu tôi phải chỉ định cho trường trong mô hình.
Dưới đây là cách tôi cố truy xuất tệp trong bộ điều khiển lò xo.
@RequestMapping (value = "/qaf/saveSetupDetails.action")
public @ResponseBody
void saveSetupDetails(@RequestParam CommonsMultipartFile data)throws Exception{
log.info("Enter into saveSetupDetails method..." + data.getOriginalFilename());
}
Xin vui lòng cho tôi biết những gì tôi đang làm sai và những gì đã được thực hiện để sửa lỗi này ...
Hi ... Xin lỗi cho sự chậm trễ trong phản ứng. Tôi sẽ kiểm tra điều này .. cảm ơn rất nhiều .. – CARTIC