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) 目前最为卓越的4.0教程,还附加案例源码。白~吃,也能学会用extjs做页面
用户在前端界面上进行财务报表查询,Extjs会发送Ajax请求到SpringMVC的相应Controller,Controller根据请求参数调用MyBatis的Mapper方法,执行SQL查询,然后将查询结果转化为Java对象,最后返回给前端进行数据显示。...
ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...
在"EXT_ASP.rar_asp extjs_extjs_extjs asp_extjs+asp"这个压缩包中,我们可以看到EXTJS与ASP结合使用的示例,用于开发一个通讯录程序,这是一个很好的学习EXTJS和ASP集成的实践项目。 首先,EXTJS的核心在于它的...
在实现过程中,开发者可能利用ExtJS4的FormPanel组件来构建登录表单,并通过AjaxForm或Store进行异步提交。Struts2的动作类接收到请求后,会验证用户名和密码的合法性,如果验证通过,则创建会话并返回成功信息,...
Ext各种组件的使用实例,Extjs tree+grid+form+panel 使用实例
EXTJS学习,webform+mvc routeing extjs布局 适合初学者
ExtJs完整例子ext+dwr,希望能给需要地兄弟提供帮助
ExtJs原生批量上传 + 实时进度 Ext.define('MyApp.ux.upload.UploadWindow', { extend: 'Ext.window.Window', height: 400, width: 700, title: '文件上传', closeAction: 'hide', maximizable: true, ...
标题中的“Extjs+java+swf多文件上传进度条显示项目”是一个综合性的Web开发实践,涉及到前端的用户界面、后端的数据处理以及文件上传过程中进度反馈的实现。这个项目利用了Extjs库来构建用户界面,Java作为服务器端...
这是本人自己总结最好用的通用后台管extjs+MySQL+oracle+SQL server数据库源码:主要运用了一下的知识: 1、主要运用的后台框架是extjs, 2、jsp+hibernate+Struts2+spring+ajax+jQuery, 3、用到了Java面向对象的...
ExtJS4是一个强大的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括各种用户界面元素,如表格、窗体、面板等。在"Extjs4登录功能+验证码+struts2"这个主题中,我们将深入探讨如何...
EXTJS+S2SH+DWR 是一种常见的Web应用程序开发架构,结合了三种强大的技术来构建交互性强、用户体验良好的企业级应用。以下是对这些技术及其在雇员管理系统中的应用的详细解释: 1. EXTJS:EXTJS 是一个JavaScript库...
上网找资料,都是一些不全的. struts2+extjs2.1+json+hibernate+spring 自己整合的例子. 当中hibernate数据源可以配置自己的.后台输送json 前台接收.
FormPanel 是 ExtJS 中的一个核心组件,用于创建和处理表单元素,包括输入字段、按钮、选择框等。它提供了丰富的功能,如数据验证、远程提交、异步加载等,是构建用户交互界面的关键部分。 在ExtJS中,FormPanel是...
在IT行业中,构建高效、交互性强的Web应用是至关重要的,而"extjs4.2+ibatis+struts构建的ajax日程表插件"就是这样一个实例,它结合了前端框架EXTJS 4.2、后端MVC框架Struts以及持久层框架iBATIS,实现了基于Ajax的...
6. **文件"AlarmShow.rar"**:这个文件可能包含EXTJS4应用中展示报警信息的页面或组件源代码,或者是与报警显示相关的资源文件,如CSS样式、图片等。 综上所述,这个项目的核心是建立一个实时的报警系统,通过EXTJS...
ExtJs+struts2+hibernate+spring的图书管理系统,可作为毕业设计使用,供大家一起参考学习为。
在IT行业中,构建Web应用程序是一项常见的任务,而`ExtJS`、`Struts2`和`JSON`是其中的关键技术,常被用来创建交互性强、功能丰富的用户界面和高效的服务器通信。下面将详细阐述这三个技术及其结合使用的情况。 ...