`
123003473
  • 浏览: 1061750 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Extjs formPanel 显示图片 + 上传[转载]

    博客分类:
  • EXT
阅读更多
 Ext.onReady(function() {   

04    

05  var fileForm = new Ext.form.FormPanel({   

06   title : "",   

07   renderTo : "fileUpload",   

08   fileUpload : true,   

09   layout : "form",   

10   id : "fileUploadForm",   

11   items : [{   

12      id : 'upload',   

13      name : 'upload',   

14      inputType : "file",   

15      fieldLabel : '上传图片',   

16      xtype : 'textfield',   

17      anchor : '40%'  

18    

19     }, {   

20          

21      xtype : 'box',   

22      id : 'browseImage',   

23      fieldLabel : "预览图片",   

24      autoEl : {   

25       width : 300,   

26       height : 350,   

27       tag : 'img',   

28       // type : 'image',   

29       src : Ext.BLANK_IMAGE_URL,   

30       style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);',   

31       complete : 'off',   

32       id : 'imageBrowse'  

33      }   

34    

35     }],   

36         

37     //form事件   

38   listeners : {   

39    'render' : function(f) {   

40     //   

41     this.form.findField('upload').on('render', function() {   

42      //通過change事件,图片也动态跟踪选择的图片变化   

43      Ext.get('upload').on('change',   

44        function(field, newValue, oldValue) {   

45    

46         //得到选择的图片路径   

47         var url = 'file://'  

48           + Ext.get('upload').dom.value;   

49               

50        // alert("url = " + url);   

51         //是否是规定的图片类型   

52         if (img_reg.test(url)) {   

53    

54          if (Ext.isIE) {   

55           var image = Ext.get('imageBrowse').dom;   

56           image.src = Ext.BLANK_IMAGE_URL;// 覆盖原来的图片   

57           image.filters   

58             .item("DXImageTransform.Microsoft.AlphaImageLoader").src = url;   

59    

60          }// 支持FF   

61          else {   

62           Ext.get('imageBrowse').dom.src = Ext   

63             .get('upload').dom.files   

64             .item(0).getAsDataURL()   

65          }   

66         }   

67        }, this);   

68     }, this);   

69    }   

70   },   

71   buttons : [{   

72      text : "提交",   

73      name : "submit",   

74      handler : submit   

75     }]   

76  });   

77    

78  // 上传图片类型   

79  var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/   

80    

81 });   

82    

83 //上傳圖片到服务器,   

84 function submit() {   

85  Ext.getCmp("fileUploadForm").getForm().submit({   

86    

87     url : "uploadAction.action",   

88     method : "POST",   

89     success : function(form, action) {   

90      alert("success");   

91     },   

92     failure : function(form, action) {   

93      alert("failure");   

94     }   

95    });   

96 } 

package com.cocobra.action;   

002    

003 import java.io.*;   

004 import java.util.Date;   

005 import java.util.UUID;   

006    

007 import org.apache.struts2.ServletActionContext;   

008    

009 import com.opensymphony.xwork2.ActionSupport;   

010    

011    

012 public class UploadAction extends ActionSupport {   

013    

014  /**   

015   *    

016   */  

017  private static final long serialVersionUID = 1L;   

018  private File upload;   

019  private String uploadContentType;   

020      

021  private String uploadFileName;   //fileName 前面必須和uplaod一致,不然找不到文件   

022      

023  public File getUpload() {   

024   return upload;   

025  }   

026    

027  public void setUpload(File upload) {   

028   this.upload = upload;   

029  }   

030    

031  public String getUploadContentType() {   

032   return uploadContentType;   

033  }   

034    

035  public void setUploadContentType(String uploadContentType) {   

036   this.uploadContentType = uploadContentType;   

037  }   

038    

039  public String getUploadFileName() {   

040   return uploadFileName;   

041  }   

042    

043  public void setUploadFileName(String uploadFileName) {   

044   this.uploadFileName = uploadFileName;   

045  }   

046    

047  // 上传文件的文件名   

048      

049    

050  private String getFileExp(String name) {   

051   int pos = name.lastIndexOf(".");   

052    

053   return name.substring(pos);   

054  }   

055      

056  private static final int BUFFER_SIZE = 16 * 1024;   

057      

058  public String execute() throws Exception{   

059      

060   Date d = new Date();   

061       

062   System.out.println("uploadFileName = "+this.uploadFileName);   

063       

064   //upload --  wapps 下面的文件夹,用来存放图片   

065   String toSrc = ServletActionContext.getServletContext().getRealPath("upload")+"/"+d.getTime()+getFileExp(this.uploadFileName);  //使用時間戳作為文件名   

066      

067   System.out.println("toFile= "+toSrc);   

068       

069   File toFile = new File(toSrc);   

070      

071       

072   writeFile(this.upload,toFile);   

073       

074   return SUCCESS;   

075  }   

076    

077    

078  private static void writeFile(File src, File dst) {   

079       

080   System.out.println(" == 文件寫入 == ");   

081   try {   

082    InputStream in = null;   

083    OutputStream out = null;   

084    try {   

085        

086     in = new BufferedInputStream(new FileInputStream(src),   

087       BUFFER_SIZE);   

088     out = new BufferedOutputStream(new FileOutputStream(dst),   

089       BUFFER_SIZE);   

090     byte[] buffer = new byte[BUFFER_SIZE];   

091     while (in.read(buffer) > 0) {   

092      out.write(buffer);   

093     }   

094    } finally {   

095     if (null != in) {   

096      in.close();   

097     }   

098     if (null != out) {   

099      out.close();   

100     }   

101    }   

102   } catch (Exception e) {   

103    e.printStackTrace();   

104   }   

105       

106   System.out.println("写入成功!");   

107 }   

108 } 

struts2中的struts.xml 配置 

显示代码打印
1 <action name="uploadAction" class="com.cocobra.action.UploadAction" >    

2      <interceptor-ref name="fileUpload">    

3      <!--拦截器strut2自带的, 指定上传文件的格式,如果不符合规定,将会自动拦截下来 -->  

4   <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg</param>   

5   <param name="maximumSize">20000000000</param>    

6  </interceptor-ref>   

7     <interceptor-ref name="defaultStack" />    

8     <result name ="success" >/index.jsp</result >    

9 </action> 


[转载]http://dev.firnow.com/course/4_webprogram/jsp/jsp_js/20100721/478246.html
分享到:
评论

相关推荐

    Extjs4.0终极教程+案例源码(超详细,针对4.0)

    Extjs4.0终极教程+案例源码(超详细,针对4.0) 目前最为卓越的4.0教程,还附加案例源码。白~吃,也能学会用extjs做页面

    Extjs+SpringMVC+MyBaits财务管控系统

    用户在前端界面上进行财务报表查询,Extjs会发送Ajax请求到SpringMVC的相应Controller,Controller根据请求参数调用MyBatis的Mapper方法,执行SQL查询,然后将查询结果转化为Java对象,最后返回给前端进行数据显示。...

    ExtJs + Struts2 + JSON 程序总结

    ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...

    EXT_ASP.rar_asp extjs_extjs_extjs asp_extjs+asp

    在"EXT_ASP.rar_asp extjs_extjs_extjs asp_extjs+asp"这个压缩包中,我们可以看到EXTJS与ASP结合使用的示例,用于开发一个通讯录程序,这是一个很好的学习EXTJS和ASP集成的实践项目。 首先,EXTJS的核心在于它的...

    Extjs4+MVC+struts2后台管理系统

    在实现过程中,开发者可能利用ExtJS4的FormPanel组件来构建登录表单,并通过AjaxForm或Store进行异步提交。Struts2的动作类接收到请求后,会验证用户名和密码的合法性,如果验证通过,则创建会话并返回成功信息,...

    Extjs tree+grid+form+panel 使用实例

    Ext各种组件的使用实例,Extjs tree+grid+form+panel 使用实例

    EXTJS学习,webform+mvc routeing extjs布局 适合初学者

    EXTJS学习,webform+mvc routeing extjs布局 适合初学者

    ExtJs完整例子ext+dwr

    ExtJs完整例子ext+dwr,希望能给需要地兄弟提供帮助

    ExtJs原生批量上传+实时进度

    ExtJs原生批量上传 + 实时进度 Ext.define('MyApp.ux.upload.UploadWindow', { extend: 'Ext.window.Window', height: 400, width: 700, title: '文件上传', closeAction: 'hide', maximizable: true, ...

    Extjs+java+swf多文件上传进度条显示项目

    标题中的“Extjs+java+swf多文件上传进度条显示项目”是一个综合性的Web开发实践,涉及到前端的用户界面、后端的数据处理以及文件上传过程中进度反馈的实现。这个项目利用了Extjs库来构建用户界面,Java作为服务器端...

    最好用的通用后台管理extjs+MySQL+oracle+SQL server数据库源码

    这是本人自己总结最好用的通用后台管extjs+MySQL+oracle+SQL server数据库源码:主要运用了一下的知识: 1、主要运用的后台框架是extjs, 2、jsp+hibernate+Struts2+spring+ajax+jQuery, 3、用到了Java面向对象的...

    Extjs4登录功能+验证码+struts2

    ExtJS4是一个强大的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括各种用户界面元素,如表格、窗体、面板等。在"Extjs4登录功能+验证码+struts2"这个主题中,我们将深入探讨如何...

    EXTJS+S2SH+DWR

    EXTJS+S2SH+DWR 是一种常见的Web应用程序开发架构,结合了三种强大的技术来构建交互性强、用户体验良好的企业级应用。以下是对这些技术及其在雇员管理系统中的应用的详细解释: 1. EXTJS:EXTJS 是一个JavaScript库...

    struts2+extjs2.1+json+hibernate+spring

    上网找资料,都是一些不全的. struts2+extjs2.1+json+hibernate+spring 自己整合的例子. 当中hibernate数据源可以配置自己的.后台输送json 前台接收.

    extjs中的formPanel以及表单的应用

    FormPanel 是 ExtJS 中的一个核心组件,用于创建和处理表单元素,包括输入字段、按钮、选择框等。它提供了丰富的功能,如数据验证、远程提交、异步加载等,是构建用户交互界面的关键部分。 在ExtJS中,FormPanel是...

    extjs4.2+ibatis+struts构建的ajax日程表插件

    在IT行业中,构建高效、交互性强的Web应用是至关重要的,而"extjs4.2+ibatis+struts构建的ajax日程表插件"就是这样一个实例,它结合了前端框架EXTJS 4.2、后端MVC框架Struts以及持久层框架iBATIS,实现了基于Ajax的...

    extjs4+servlet+json+soundmanager2实现定时刷新报警(原创)

    6. **文件"AlarmShow.rar"**:这个文件可能包含EXTJS4应用中展示报警信息的页面或组件源代码,或者是与报警显示相关的资源文件,如CSS样式、图片等。 综上所述,这个项目的核心是建立一个实时的报警系统,通过EXTJS...

    ExtJs+struts2+hibernate+spring的图书管理系统

    ExtJs+struts2+hibernate+spring的图书管理系统,可作为毕业设计使用,供大家一起参考学习为。

    @@@extjs+struts2+json plugin的例子

    在IT行业中,构建Web应用程序是一项常见的任务,而`ExtJS`、`Struts2`和`JSON`是其中的关键技术,常被用来创建交互性强、功能丰富的用户界面和高效的服务器通信。下面将详细阐述这三个技术及其结合使用的情况。 ...

Global site tag (gtag.js) - Google Analytics