[转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例

原文地址:http://www.stepday.com/topic/?459


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

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

因为ExtJs的文件上传组件filefield是基于form表单提交数据的,所以我们需要创建Ext.form.Panel,页面布局及其配置代码如下所示:

view sourceprint?

001.<html xmlns="http://www.w3.org/1999/xhtml">

002.<head runat="server">

003.<title>ExtJs的文件上传</title>

004.<!-- ExtJS -->

005.<link rel="stylesheet" type="text/css" href="/css/ext-all.css" />

006.<script type="text/javascript" src="/js/ext-all.js"></script>

007.<!-- Shared -->

008.<link rel="stylesheet" type="text/css" href="/css/example.css" />

009.<script type="text/javascript" language="javascript">

010.Ext.require([

011.‘Ext.form.field.File‘,

012.‘Ext.form.Panel‘,

013.‘Ext.window.MessageBox‘

014.]);

015.

016.Ext.onReady(function () {

017.//定义一个消息提示方法

018.var msg = function (title, msg) {

019.Ext.Msg.show({

020.title: title,

021.msg: msg,

022.minWidth: 200,

023.modal: true,

024.icon: Ext.Msg.INFO,

025.buttons: Ext.Msg.OK

026.});

027.};

028.//创建form表单

029.Ext.create(‘Ext.form.Panel‘, {

030.renderTo: ‘divUpload‘,//form表单的承载对象

031.width: 600, //表单宽度

032.frame: true,

033.title: ‘图片上传‘,//表单名称

034.bodyPadding: ‘10 10 0‘, //表单内项目距离边框的值

035.//配置默认属性

036.defaults: {

037.anchor: ‘90%‘,

038.allowBlank: false,

039.msgTarget: ‘side‘,

040.labelWidth: 100

041.},

042.//表单内的项目配置

043.items: [{

044.xtype: ‘textfield‘,

045.fieldLabel: ‘图片说明‘,

046.name: ‘picDesc‘//这个是文本框的name值,post表单数据的时候,用于Request["picDesc"] 获取数据之用

047.}, {

048.xtype: ‘filefield‘,

049.id: ‘fileUpload‘,

050.emptyText: ‘请选择一个图片文件‘,

051.fieldLabel: ‘图片路径‘,

052.name: ‘fileUpload‘,

053.buttonText: ‘浏览‘,

054.buttonConfig: {

055.iconCls: ‘upload-icon‘

056.},

057.//添加事件

058.listeners: {

059.//装载的时候添加监听事件

060."render": function () {

061.//这里尤其要注意的是使用Ext.get(‘upload‘),而不是Ext.getCmp(‘upload‘),否则不起效果,若使用后者,则只有当文本框的内容改变的时候,才会触发change 事件

062.Ext.get(‘fileUpload‘).on("change", function () {

063.debugger

064.var uploadFileName = Ext.getCmp(‘fileUpload‘).getValue();

065.//只允许上传jpg|JPG文件

066.if (uploadFileName.substring(uploadFileName.lastIndexOf(".") + 1).toLowerCase() != "jpg" || uploadFileName.substring(epath.lastIndexOf(".") + 1).toLowerCase() != "JPG") {

067.msg(‘Error‘, ‘只允许上传pg|JPG文件!‘);

068.}

069.})

070.}

071.}

072.}],

073.buttons: [{

074.text: ‘上 传‘,

075.handler: function () {

076.var form = this.up(‘form‘).getForm();

077.//验证表单

078.if (form.isValid()) {

079.//获取所选择文件的名称

080.var epath = form.findField("fileUpload").getValue();

081.//只允许上传jpg|JPG件

082.if (epath.substring(epath.lastIndexOf(".") + 1).toLowerCase() == "jpg" || epath.substring(epath.lastIndexOf(".") + 1).toLowerCase() == "JPG") {

083.form.submit({

084.url: ‘/Pic/Upload_Ajax.aspx‘,

085.waitMsg: ‘图片正在上传,请耐心等待....‘,

086.success: function (fp, o) {

087.msg(‘图片上传成功‘, o.message);

088.},

089.failure: function (fp, o) {

090.msg("错误提示", o.message);

091.}

092.});

093.} else {

094.msg(‘错误提示‘, ‘只允许上传jpg|JPG文件!‘);

095.}

096.}

097.}

098.}, {

099.text: ‘取 消‘,

100.handler: function () {

101.this.up(‘form‘).getForm().reset();

102.}

103.}]

104.});

105.

106.});

107.</script>

108.</head>

109.<body>

110.<form id="form1" runat="server">

111.<div id="divUpload">

112.</div>

113.</form>

114.</body>

115.</html>

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

核心代码如下所示:

view sourceprint?

01.protected void Page_Load(object sender, EventArgs e)

02.{

03.HttpPostedFile file = Request.Files["fileUpload"];

04.//图片描述

05.string FileDesc = Request["picDesc"];

06.

07.if (file != null)

08.{

09.//上传图片路径

10.string PicSavePath = string.Format("/images/upload/{0}", file.FileName);

11.try

12.{

13.file.SaveAs(MapPath(PicSavePath));

14.}

15.catch (Exception eg)

16.{

17.Response.Write("{success:false,flag:0,message:‘"+eg.ToString()+"!‘}");

18.}

19.Response.Write("{success:true,flag:0,message:‘文件"+file.FileName+"上传成功!‘}");

20.}

21.else

22.{

23.Response.Write("{success:false,flag:0,message:‘参数配置错误!‘}");

24.}

25.Response.End();

26.}

三、运行效果图

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

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

时间: 2024-10-21 02:37:39

[转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例的相关文章

c++入门之一:EGE图形库介绍与配置(VS2013、DEVCPP)

c++学习的方式方法很多,本篇笔记主要记录DEVCPP和VS2013的ege图形库的配置,为接下来利用ege图形库学习c++做准备. 一.EGE图形库简介 EGE图形行库中的EGE为Easy Graphics Engine的缩写,是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在.它的使用方法与TC中的graphics.h相当接近. EGE图形库的作者是:misakamm,他的主页请点击:[这里] E

ExtJs 4 的filefield上传后 返回值success接受不正常

问题解决了,我修改了返回类型为setContentType("text/html")可以正确解析了,感到很奇怪,其他的地方使用setContentType("application/Json")都没问题,就上传的返回有问题了.success:function(){}这里的解析是extJS解析收到的返回json后才会执行的,如果你的json字符串有问题,这里是不会执行的,好了结贴了. try { ServletActionContext.getResponse().s

git 上传代码到GitHub 以及git删除github上文件和文件的命令

Git入门 如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),可知我们此时应该有两个仓库,就是两个放代码的地方,一个是本地,一个是远程的(如Github).企业或者团队可以通过Git来对项目进行管理,每个程序员只需将自己的本地仓库写好的代码上传到远程仓库,另一个程序员就可以下载到本地仓库了.今天我们就从Git终端软件的安装开始,再这之前我也简单介绍一下Github. Git上传代码 一.准备工作 1.注册一个g

java配置ueditor中解决“未找到上传文件”错误提示

ueditor是一个功能十分强大的在线文本编辑器,但是在ssh框架中,确切的说实在struts2中由于其拦截器需要对request,session对象进行重新封装,这个过程中会把request对象中保存的一些内容清空,所以会导致ueditor的上传功能获取不到需要上传的内容导致“未找到上传文件”的错误! 参考网上资料和自己实验,最终的解决思路是,重写struts2中的一个转换的类,然后配置struts2使用我们重写的这个类.由于我们的工程中可能会有其他的上传等功能,为了不影响其他功能的时候,还需

每周汇总(第一周)——Git上传时,忽略多个不想上传的文件

现在用webpack打包的文件原来越多,项目会生成很多的临时文件,由于托管代码像依赖包之类的是不用上传的,所以想指定上传的文件目录就可以通过.gitignore来配置 在通过git init的时候,就会生成.gitignore文件,可以如下配置: #过滤.mdb..sln等数据库文件.sln解决方案文件.配置文件 *.mdb *.ldb *.sln *.config #过滤文件夹Debug,Release,obj以及包含的文件 Debug/ Release/ obj/ 如果项目中已经有了不该有的

使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传

Anthem.NET刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与安装 Anthem.NET可以在此下载:http://sourceforge.net/project/showfiles.php?group_id=151897&package_id=168043&release_id=493609 下载之后解压缩至硬盘中的某一目录中,编译项目得到Anthem.dll.然后将其拷贝到We

使用Ajax.BeginForm 中需要 上传文件 但 Request.files获取不到

使用Mvc里的插件jquery.unobtrusive-ajax.min.js 之前一直困在这里,一开始以为添加属性enctype="multipart/form-data"就可以 网上看到都是用另外一个插件jquery.form.js 于是,从某篇文章的附件中下载了jquery.form.js,弄了许久,还不行,顿时泪崩了, 最后在官网下载最新的jquery.form.js就解决了  ==|| 使用Ajax.BeginForm 中需要 上传文件 但 Request.files获取不到

webDAV服务的开启以及客户端的上传、下载、删除、新建文件夾、列表的代码(C#)

windows server 2003开启webDAV服务 1. 启动“IIS管理器”选择“WEB服务扩展”,选择“WEBDAV”的允许按钮启动WEBDAV功能 2.建立一个虚拟目录,对应到一个本地目录. 3.启动系统“服务”中的“WebClient”服务 参考网址 WebDAV文档rfc2518    http://www.ietf.org/rfc/rfc2518.txt webdav常用方法和概念总结   http://blog.csdn.net/mahongming/archive/200

put上传文件的服务器的配置

1,HTTP常见的方法 GET 获取指定资源 POST 2M 向指定资源提交数据进行处理请求,在RESTful风格中用于新增资源 HE A D 获取指定资源头部信息PUT 替换指定资源(不支持浏览器操作) DELETE 删除指定资源   2,配置服务器的put请求方式:   1> n 打开终端p cd /etc/apache2p sudo vim httpd.conf n 在vim中输入p /httpd-dav.conf? 查找httpd-dav.confp 按0将光标移动至行首p 按x将行首的