AJax技术

ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上

字号+ 作者:H5之家 来源:H5之家 2017-12-09 13:02 我要评论( )

作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的。基本上都是Copy过来加以部分改造即

作者:ExtJs | 时间:2013-5-24 15:31:59 | [  ] | 来源:ExtJs | 

阅读

阅读:32769 | 

评论

  : 3 |  收藏 ExtJs,filefield,入门,上传,文件,示例,asp.net,Ajax,完美,实现  

原创

[摘要]: 作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的。基本上都是Copy过来加以部分改造即可实现自己想要的功能,加之如今的第三方开发者也大发慈悲地写出了API的帮助文档以及示例文档。关于ExtJs内的文件上传,将从以下几个方面进行展开讲解: 一、ExtJs文件上传版面的布局以及配置 因为ExtJs的文件上传组件filefield是基于form表单提交数据的,所以我们需要创建Ext.form.Panel,页面布局及其配置代码如下所示: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>ExtJs的文件上传</title&g...

作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的。基本上都是Copy过来加以部分改造即可实现自己想要的功能,加之如今的第三方开发者也大发慈悲地写出了API的帮助文档以及示例文档。关于ExtJs内的文件上传,将从以下几个方面进行展开讲解:

一、ExtJs文件上传版面的布局以及配置


<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>ExtJs的文件上传</title> <!-- ExtJS --> <link type="text/css" href="/css/ext-all.css" /> <script type="text/javascript" src="/js/ext-all.js"></script> <!-- Shared --> <link type="text/css" href="/css/example.css" /> <script type="text/javascript" language="javascript"> Ext.require([ 'Ext.form.field.File', 'Ext.form.Panel', 'Ext.window.MessageBox' ]); Ext.onReady(function () { //定义一个消息提示方法 var msg = function (title, msg) { Ext.Msg.show({ title: title, msg: msg, minWidth: 200, modal: true, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); }; //创建form表单 Ext.create('Ext.form.Panel', { renderTo: 'divUpload',//form表单的承载对象 width: 600, //表单宽度 frame: true, title: '图片上传',//表单名称 bodyPadding: '10 10 0', //表单内项目距离边框的值 //配置默认属性 defaults: { anchor: '90%', allowBlank: false, msgTarget: 'side', labelWidth: 100 }, //表单内的项目配置 items: [{ xtype: 'textfield', fieldLabel: '图片说明', name: 'picDesc'//这个是文本框的name值,post表单数据的时候,用于Request["picDesc"] 获取数据之用 }, { xtype: 'filefield', id: 'fileUpload', emptyText: '请选择一个图片文件', fieldLabel: '图片路径', name: 'fileUpload', buttonText: '浏览', buttonConfig: { iconCls: 'upload-icon' }, //添加事件 listeners: { //装载的时候添加监听事件 "render": function () { //这里尤其要注意的是使用Ext.get('upload'),而不是Ext.getCmp('upload'),否则不起效果,若使用后者,则只有当文本框的内容改变的时候,才会触发change 事件 Ext.get('fileUpload').on("change", function () { debugger var uploadFileName = Ext.getCmp('fileUpload').getValue(); //只允许上传jpg|JPG文件 if (uploadFileName.substring(uploadFileName.lastIndexOf(".") + 1).toLowerCase() != "jpg" || uploadFileName.substring(epath.lastIndexOf(".") + 1).toLowerCase() != "JPG") { msg('Error', '只允许上传pg|JPG文件!'); } }) } } }], buttons: [{ text: '上 传', handler: function () { var form = this.up('form').getForm(); //验证表单 if (form.isValid()) { //获取所选择文件的名称 var epath = form.findField("fileUpload").getValue(); //只允许上传jpg|JPG件 if (epath.substring(epath.lastIndexOf(".") + 1).toLowerCase() == "jpg" || epath.substring(epath.lastIndexOf(".") + 1).toLowerCase() == "JPG") { form.submit({ url: '/Pic/Upload_Ajax.aspx', waitMsg: '图片正在上传,请耐心等待....', success: function (fp, o) { msg('图片上传成功', o.message); }, failure: function (fp, o) { msg("错误提示", o.message); } }); } else { msg('错误提示', '只允许上传jpg|JPG文件!'); } } } }, { text: '取 消', handler: function () { this.up('form').getForm().reset(); } }] }); }); </script> </head> <body> <form runat="server"> <div> </div> </form> </body> </html>


二、编写Upload_Ajax.aspx的相关代码 获取表单数据

核心代码如下所示:


protected void Page_Load(object sender, EventArgs e) { HttpPostedFile file = Request.Files["fileUpload"]; //图片描述 string FileDesc = Request["picDesc"]; if (file != null) { //上传图片路径 string PicSavePath = string.Format("/images/upload/{0}", file.FileName); try { file.SaveAs(MapPath(PicSavePath)); } catch (Exception eg) { Response.Write("{success:false,flag:0,message:'"+eg.ToString()+"!'}"); } Response.Write("{success:true,flag:0,message:'文件"+file.FileName+"上传成功!'}"); } else { Response.Write("{success:false,flag:0,message:'参数配置错误!'}"); } Response.End(); }


三、运行效果图

文件上传页面配置效果图

图1:文件上传页面配置效果图


文件上传过程中的提示效果图

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
a