ExtJS4学习---上传文件(upload)
2014-08-12 11:30
211 查看
本文介绍Extjs4文件上传示例,Extjs4中,主要使用up('form').getForm().submit()方法来实现文件的上传,在submit方法中,指定其type属性,这点很重要,如果不指定,那么在上传完成后的处理中,除非服务端不返回数据,否则客户端就会报错。实例代码如下:
upload.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../bootstrap.js"></script>
<script type="text/javascript" src="../../locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="upload.js"></script>
<title>MHZG.NET--upload</title>
</head>
<body>
<div id="upload"></div>
</body>
</html>
upload.js:
Ext.onReady(function(){
Ext.create('Ext.form.Panel', {
title: '文件上传示例--MHZG.NET',
width: 400,
bodyPadding: 10,
margin:'50 10 50 80',
frame: true,
renderTo: 'upload',
items: [{
xtype: 'filefield',
name: 'fileName',
fieldLabel: '上传',
labelWidth: 50,
msgTarget: 'side',
allowBlank: false,
anchor: '100%',
buttonText: '选择文件'
}],
buttons: [{
text: '上传',
handler: function() {
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
url: 'upload.asp',
type:'ajax',
waitMsg: '正在保存文件...',
success: function(fp, o) {
// Ext.Msg.alert('提示信息', '文件成功上传,文件名字为:'+o.result.file);
Ext.Msg.show({
title:'提示信息',
msg:'文件上传成功<br>上传文件名为:'+o.result.file,
minWidth:200,
modal:true,
buttons:Ext.Msg.OK
})
form.findField('fileName').setRawValue('');
}
});
}
}
}]
});
});
服务端文件upload.asp的内容就不写了,由于在文件中用到了各种无组件上传代码,所以比较杂乱,注意一点就可以,在任何类型的服务端处理文件中,在处理完上传之后,给客户端返回一段JSON,客户端就可以通知客户上传完成。服务端处理完上传之后返回的JSON字符串为如下类型:{success:true,file:"""&fileName&"""},JSON字符串可以任意组合,这里的fileName为上传后文件地址+文件名(/UploadFile/2011830.gif),以便于客户端进行其他操作。
最后,在代码中用到了form.findField('fileName').setRawValue('');,这句是清空file选择框,因为用form.reset();根本无法清除file选择框中的内容,无奈之下用了这个办法,如果大家有更好的办法,欢迎留言指正。。
upload.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<script type="text/javascript" src="../../bootstrap.js"></script>
<script type="text/javascript" src="../../locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="upload.js"></script>
<title>MHZG.NET--upload</title>
</head>
<body>
<div id="upload"></div>
</body>
</html>
upload.js:
Ext.onReady(function(){
Ext.create('Ext.form.Panel', {
title: '文件上传示例--MHZG.NET',
width: 400,
bodyPadding: 10,
margin:'50 10 50 80',
frame: true,
renderTo: 'upload',
items: [{
xtype: 'filefield',
name: 'fileName',
fieldLabel: '上传',
labelWidth: 50,
msgTarget: 'side',
allowBlank: false,
anchor: '100%',
buttonText: '选择文件'
}],
buttons: [{
text: '上传',
handler: function() {
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
url: 'upload.asp',
type:'ajax',
waitMsg: '正在保存文件...',
success: function(fp, o) {
// Ext.Msg.alert('提示信息', '文件成功上传,文件名字为:'+o.result.file);
Ext.Msg.show({
title:'提示信息',
msg:'文件上传成功<br>上传文件名为:'+o.result.file,
minWidth:200,
modal:true,
buttons:Ext.Msg.OK
})
form.findField('fileName').setRawValue('');
}
});
}
}
}]
});
});
服务端文件upload.asp的内容就不写了,由于在文件中用到了各种无组件上传代码,所以比较杂乱,注意一点就可以,在任何类型的服务端处理文件中,在处理完上传之后,给客户端返回一段JSON,客户端就可以通知客户上传完成。服务端处理完上传之后返回的JSON字符串为如下类型:{success:true,file:"""&fileName&"""},JSON字符串可以任意组合,这里的fileName为上传后文件地址+文件名(/UploadFile/2011830.gif),以便于客户端进行其他操作。
最后,在代码中用到了form.findField('fileName').setRawValue('');,这句是清空file选择框,因为用form.reset();根本无法清除file选择框中的内容,无奈之下用了这个办法,如果大家有更好的办法,欢迎留言指正。。
相关文章推荐
- ExtJs学习篇---使用Extjs 加DWR 实现文件上传
- ExtJs文件上传(Ext.ux.form.FileUploadField)
- 【ThinkPHP学习】ThinkPHP upload与SAE storage结合,实现文件上传
- 【学习】NeatUpload——支持大文件上传的控件
- Extjs中用dwr实现文件上传时,fileuploadfield不能正常显示的问题
- Asp.net core 学习笔记 ( upload/download files 文件上传与下载 )
- springmvc +Extjs+swfUpload上传文件
- ExtJS + fileuploadfield上传文件代码
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 文件的上传Commons FileUpload(web基础学习笔记十六)
- ExtJs学习篇---文件上传篇
- 后台学习六---ajaxFileupload文件上传下载
- 原创的ASP文件上传函数库,比动网、amao的都差了很多,不过是学习的好资料
- Struts upload组件同一个页面中多文件上传
- 关于JSP Commons FileUpload 组件上传文件的一些总结
- 项目开发技巧(四):使用JspSmartupload实现文件上传下载(三):jspsmartupload samples
- utf-8 转为 gb2312 和 smartupload上传文件并附text域的值的汉字解决办法(注意是:WAP,XHTML或XML中)
- JSP SmartUpload上传文件乱码解决纪实+UploadBean上传解决方案
- 在jsp中使用smartupload组件上传文件
- 大文件上传 之 改版了的SlickUpload.HttpUploadModule(Krystalware.SlickUpload.dll)