第漏嫌滑一种方法:传统的上传方式
在formpanal中增加一个fileUpload的属性
例子代码:
JScript 代码 复制
Ext.onReady(function(){
var form = new Ext.form.FormPanel({
renderTo:'file',
labelAlign: 'right',
title: '文件上传',
labelWidth: 60,
frame:true,
url: 服务器处理上传功能的url地址,//fileUploadServlet
width: 300,
height:200,
fileUpload: true,
items: [{
xtype: 'textfield',
fieldLabel: '文件名',
name: 'file',
inputType: 'file'//文件类型
}],
buttons: [{
text: '上传',
handler: function() {
form.getForm().submit({
success: function(form, response){
Ext.Msg.alert('信息', response.result.msg)
},
failure: function(){
Ext.Msg.alert('错误', '文件上传失败')
}
})
}
}]
})
})
第二种方法:借助Ext.ux.UploadDialog.Dialog的组件,在编码时需要导入两返腊个文件
需要引入 Ext.ux.UploadDialog 样式文件 和 Ext.ux.UploadDialog.packed脚本文件。
例子代码
//在使用此方法者亏进行文件上传时,其后台往页面的返回值类型是这样的:
//{'success':true,'message':'上传成功'}
//如果没有success:true,无论上传成功与否,显示的都是上传失败,其实这个和form.submit()的提交方式是一个道理。
var dialog = new Ext.ux.UploadDialog.Dialog({
autoCreate: true,
closable: true,
collapsible: false,
draggable: true,
minWidth: 400,
minHeight: 200,
width: 400,
height: 350,
permitted_extensions:['JPG','jpg','jpeg','JPEG','GIF','gif','xls','XLS'],
proxyDrag: true,
resizable: true,
constraintoviewport: true,
title: '文件上传',
url:用于处理上传文件功能的Url,
reset_on_hide: false,
allow_close_on_upload: true ,
upload_autostart: false
})
//定义上传文件的按钮
var btnShow = new Ext.Button({
text:'上传文件',
listeners:{
click:function(btnThis,eventobj){
dialog.show()
}
}
})
其实,EXTJS4.0中有自带的上传控件 ,你引用一下就行了关键在於,你上传的文件是保存在数据库中,还是保存在服务器的硬盤上
保存在数据库中要化成二进制流,但缺点是文件大的时候,数据库很麻橘毁烦,并且写进数据库要转换,读出祥历来也要转化
如果保存在服务器上,只在数据库中保存路径,然後就可圆宴备以根据路径来下载,
删除的时候,也同样根据路径要删除服务器上的文件和数据库中的文件信息
祝你好运,如何你不明白的话,我可以给你源码看一下,之前我做的上传,下载和删除功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)