ExtJs - 从文件字段保存选定的文件
ExtJs - Save selected file from filefield
我想使用 extjs6 现代工具包上传文件。因此,我显示一个 MessageBox
和一个文件选择器。单击“确定”按钮上传所选文件(例如通过 HTTP POST)后,如何将所选文件检索到 javascript 对象中?
this.createUploadMsgBox("File Upload", function (clickedButton) {
if (clickedButton == 'ok') {
console.log("file: " + file);
}
createUploadMsgBox: function (title, callback) {
Ext.Msg.show({
title: title,
width: 300,
buttons: Ext.MessageBox.OKCANCEL,
fn: callback,
items: [
{
xtype: 'filefield',
label: "File:",
name: 'file'
}
]
});
}
你可以在这里朗姆酒我的例子:
您有两个可能的解决方案。
一种是使用form
,通过form.submit()
发送文件(提交前使用form.isValid()
)。您可以使用 MultipartFile 在服务器中检索文件。
另一种方法是使用JS File API。在你 createUploadMsgBox
函数中:
this.createUploadMsgBox("File Upload", function (clickedButton) {
if (clickedButton == 'ok') {
//console.log("file: " + file);
var filefield = Ext.ComponentQuery.query('filefield')[0];
var file = filefield.el.down('input[type=file]').dom.files[0];
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
console.log(e.target.result);
};
})(file);
reader.readAsBinaryString(file);
}
});
在file
对象中你有文件的基本信息,然后你会在控制台看到文件的内容。
希望对您有所帮助!
我想使用 extjs6 现代工具包上传文件。因此,我显示一个 MessageBox
和一个文件选择器。单击“确定”按钮上传所选文件(例如通过 HTTP POST)后,如何将所选文件检索到 javascript 对象中?
this.createUploadMsgBox("File Upload", function (clickedButton) {
if (clickedButton == 'ok') {
console.log("file: " + file);
}
createUploadMsgBox: function (title, callback) {
Ext.Msg.show({
title: title,
width: 300,
buttons: Ext.MessageBox.OKCANCEL,
fn: callback,
items: [
{
xtype: 'filefield',
label: "File:",
name: 'file'
}
]
});
}
你可以在这里朗姆酒我的例子:
您有两个可能的解决方案。
一种是使用form
,通过form.submit()
发送文件(提交前使用form.isValid()
)。您可以使用 MultipartFile 在服务器中检索文件。
另一种方法是使用JS File API。在你 createUploadMsgBox
函数中:
this.createUploadMsgBox("File Upload", function (clickedButton) {
if (clickedButton == 'ok') {
//console.log("file: " + file);
var filefield = Ext.ComponentQuery.query('filefield')[0];
var file = filefield.el.down('input[type=file]').dom.files[0];
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
console.log(e.target.result);
};
})(file);
reader.readAsBinaryString(file);
}
});
在file
对象中你有文件的基本信息,然后你会在控制台看到文件的内容。
希望对您有所帮助!