ExtJs框架 文件上传

一、前端页面引入ExtJS

<!--ExtJs框架开始-->
	<script type="text/javascript"
		src="../../include/Ext/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="../../include/Ext/ext-all.js"></script>
	<script src="../../include/Ext/src/locale/ext-lang-zh_CN.js"
		type="text/javascript"></script>
	<link rel="stylesheet" type="text/css"
		href="../../include/Ext/resources/css/ext-all.css" />
	<!--ExtJs框架结束-->	

二、前端页面创建文本上传域 (代码888行)

var file = new Ext.form.TextField({
					name : 'upload',/* name: 'file':名称,重要,因为service端要根据这个名称接收文件 */
					fieldLabel : 'file upload',
					inputType : 'file',
					allowBlank : false,
					blankText : '请浏览文件'
				});
				//提交按钮处理方法
				var btnsubmitclick = function() {
					if (uploadForm.getForm().isValid()) {
						uploadForm.getForm().submit();
						alert("upload success");
					}
				};
				//重置按钮"点击时"处理方法
				var btnresetclick = function() {
					uploadForm.getForm().reset();
				};
				//表单
				var uploadForm = new Ext.form.FormPanel({
					frame : true,
					fileUpload : true,
					url : '/BMS/file/upload',
					items : [ file ],
					buttons : [ {
						text : 'upload',
						handler : btnsubmitclick
					}, {
                    text: 'cancel',
                    handler: btnresetclick
                }]	
    });

三、前端页面3583行 在items中加入uploadForm

items:[	
	uploadForm,								
										
	{
		xtype:'textfield',
		fieldLabel:'建设单位',
		labelAligin:'right',
		name:'buildUnit',
												
	}																												
]

四、struts.xml 99行

<package name="file" extends="struts-default" namespace="/file">
		<action name="upload" method="upload" class="com.jdwy.action.FileAction">
			<result name="success">/BMS/index.jsp</result>
			<param name="uploadPath">/upload</param>
		</action>
	</package>

五、FileAction.java

package com.jdwy.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

public class FileAction{
	/**
	 * 
	 */
	private File upload;
	private String uploadFileName;
	public File getUpload() {
		return upload;
	}
	public void setUpload(File upload) {
		this.upload = upload;
	}
	private String uploadPath;
	
	public String upload() throws Exception{
		
		InputStream is=new FileInputStream(upload);
		String path=ServletActionContext.getServletContext().getRealPath(uploadPath);
		OutputStream os=new FileOutputStream(path+"/"+uploadFileName);
		
		byte buffer[]=new byte[1024];
		int cnt;
		while((cnt=is.read(buffer))>0){
			os.write(buffer,0,cnt);
		}
		os.close();
		is.close();
		
		return "success";
	} 
	public String getUploadFileName() {
		return uploadFileName;
	}
	public void setUploadFileName(String uploadFileName) {
		this.uploadFileName = uploadFileName;
	}

	public String getUploadPath() {
		return uploadPath;
	}
	public void setUploadPath(String uploadPath) {
		this.uploadPath = uploadPath;
	}
}	

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏along的开发之旅

图解JSP运行原理和过程

下面代码通过注解来处理/hello的请求, 并在代码中将请求转发到上述hello.jsp.

881
来自专栏公有云大数据平台弹性 MapReduce

yarn公平调度详细分析(一)

FairScheduler是yarn常用的调度器,但是仅仅参考官方文档,有很多参数和概念文档里没有详细说明,但是这些参明显会影响到集群的正常运行。本文的主要目的...

1.4K17
来自专栏SDNLAB

OPNFV SFC简介

今天主要让大家了解下下ODL 中SFC的实现,以下如有描述不准确的地方请指正。 1 基本概念 本架构参考ODL SFC项目,其已经合并到OPNFV的Brahma...

49711
来自专栏JetpropelledSnake

Django学习笔记之利用Form和Ajax实现注册功能

1635
来自专栏SDNLAB

Open vSwitch源码解析之基于VxLAN实现NSH解析功能

1. NSH-SFC概述 当前SFC的实现方案主要分为两种:一种基于NSH(network service header)。数据封装时,在L2或者L3数据后添加...

5935
来自专栏后端之路

Poi导出产生OOM解决方案

背景 目前生产系统大量的数据的导出,情况不是特别理想,将常出现OOM 如果不限制程序最大内存可能导致其他应用收到影响 比如稽计任务 思路 考虑出现OOM是如下几...

60510
来自专栏Java3y

【SSH测试整合Demo】企业人事管理系统

前言 前面我们已经学习了怎么整合SSH框架了。是时候拿一个小项目来练练手了….我们现在要设计一个企业人事管理系统… 需求: **要求对员工信息进行维护; ** ...

41013
来自专栏Netkiller

Elasticsearch 瞬间入门

把大象放进冰箱共有几步? 1. 打开冰箱门 2. 把大象放进去 3. 关上冰箱门 Elasticsearch 非常容易学习,分为3步: 1. 把数据放进去 2...

3276
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-26(02)总结网络编程

c:客户端键盘录入服务器控制台输出 package cn.itcast_08; import java.io.BufferedReader; import ja...

2814
来自专栏JMCui

Java 原生网络编程.

    Java 语言从其诞生开始,就和网络紧密联系在一起。在 1995 年的 Sun World 大会上,当时占浏览器市场份额绝对领先的网景公司宣布在浏览器中...

1062

扫码关注云+社区

领取腾讯云代金券