使用strtus 怎么实现易语言 读入exexl数据 文件的上传

struts2.0上传下载
我的图书馆
struts2.0上传下载
strtus2.0实现上传
实现原理Struts 2是通过Commons FileUpload文件上传。
<mons FileUpload通过将HTTP的数据保存到临时文件夹,
2.然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。
以下是例子所依赖类包的列表:
650) this.width=650;">&
(1)上传的JSP页面:FileUpload.jsp:&%@ page contentType="text/charset=GBK" language="java"%&&%@ taglib prefix="s" uri="/struts-tags"%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html&&head& &&& &title& Struts 2文件上传示例 &/title& &/head& &body& &&& &s:form action="fileUpload" method="post" enctype="multipart/form-data"& &&&&&&& &s:file name="loadFile" label="图片文件"/& &&&&&&& &s:textfield name="caption" label="描述"/&&&&&&&& &&&&&&& &s:submit/& &&& &/s:form& &/body& &/html&
注意:1.enctype须设置为"multipart/form-data";2.&s:file name="loadFile"&标签将上传文件赋值给ACTION中的File loadFile属性。
(2)实现上传的ACTION--FileUploadAction.java此ACTION实现功能:将浏览器上传的文件复制到web应用程序根根目录下的uploadImages目录下。public class FileUploadAction extends ActionSupport {&private static final long serialVersionUID = 1L;&private static final int BUFFER_SIZE = 16 * 1024;&/*& * 一个loadFile,& * 不但须设置setLoadFile(),& * 还需要设置setLoadFileContentType(String contentType):获取上传文件的MIME类型& *&&&&&&&& setLoadFileFileName(String fileName):上传文件的文件名,此文件名不包括文件路径& * 因此:& * &s:file name="xxx"&,则ACTION中要有三个对应的setter方法:& * setxxx(),&& & * setxxxContentType(String contentType)& * setxxxFileName(String fileName)&&& & * */&private File loadF&private String contentT&private String fileN&//用于showUpload.jsp获取&private String imageFileN&private S&public void setLoadFileContentType(String contentType) {&&this.contentType = contentT&}
&public void setLoadFileFileName(String fileName) {&&this.fileName = fileN&}
&public void setLoadFile(File loadFile) {&&this.loadFile =loadF&}
&public String getImageFileName() {&&return imageFileN&}
&public String getCaption() {&&&}
&public void setCaption(String caption) {&&this.caption =&}
&private static void copy(File src, File dst) {&&try {&&&InputStream in =&&&OutputStream out =&&&try {&&&&in = new BufferedInputStream(new FileInputStream(src),&&&&&&BUFFER_SIZE);&&&&out = new BufferedOutputStream(new FileOutputStream(dst),&&&&&&BUFFER_SIZE);&&&&byte[] buffer = new byte[BUFFER_SIZE];&&&&while (in.read(buffer) & 0) {&&&&&out.write(buffer);&&&&}&&&} finally {&&&&if (null != in) {&&&&&in.close();&&&&}&&&&if (null != out) {&&&&&out.close();&&&&}&&&}&&} catch (Exception e) {&&&e.printStackTrace();&&}&}
&@Override&public String execute() {&&imageFileName = fileN&&File dir=new File(ServletActionContext.getServletContext()&&&&.getRealPath("/UploadImages "));&&File imageFile = new File(ServletActionContext.getServletContext()&&&&.getRealPath("/UploadImages")+File.separator+ imageFileName);&&if(!dir.exists()) dir.mkdirs();&&System.out.println(ServletActionContext.getServletContext()&&&&.getRealPath("/UploadImages")+File.separator+ imageFileName);&&copy(loadFile, imageFile);&&return SUCCESS;&}
(3)struts.xml中相应配置:因为struts是使用fileUpload拦截器来实现文件的上传的,所以在配置时,须调用fileUpload拦截器。1.&&package name="fileUploads" extends="struts-default"&&&&action name="fileUpload" class="com.struts2.app.FileUploadAction"&&&&&interceptor-ref name="fileUploadStack" /&&&&&result name="input"&/FileUpload.jsp&/result&&&&&result name="success"&/ShowUpload.jsp&/result&&&&/action&&&/package&2.若上限制用户上传图片的类型,可以为拦截器添加参数allowedTypes,且在ACTION中添加相应的属性定义。(此设置为本文应用的设置)&&package name="fileUploads" extends="struts-default"&&&&action name="fileUpload"&&&class="com.struts2.app.FileUploadAction"&&&&&interceptor-ref name="fileUpload"&&&&&&param name="allowedTypes"&&&&&&image/bmp,image/png,image/gif,image/jpg,image/jpeg&&&&&/param&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &!-- 配置允许上传的文件大小,单位字节 --&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &param name="maximumSize"&102400&/param&&&&&/interceptor-ref&&&&&interceptor-ref name="defaultStack" /&&&&&result name="input"&/FileUpload.jsp&/result&&&&&result name="success"&/ShowUpload.jsp&/result&&&&/action&&&/package&
(4)strtus.multipart.saveDir用于指定存放临时文件的文件夹。如:strtus.multipart.saveDir=/tmp,则上传的文件就会临时保存到根目录下的tmp文件夹中。
(5)添加显示上传图片的JSP页面:&%@ page contentType="text/charset=GBK" language="java"%&&%@ taglib prefix="s" uri="/struts-tags"%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html&&head& && &title& Struts 2文件上传示例 &/title& &/head& &body& &&& &div style ="padding: 4 text-align: center"& &&&&&&& &img src ='UploadImages/&s:property value ="imageFileName"/& '/&&&&&&&& &br/& &&&&&&& &s:property value ="caption"/& &&& &/div& &/body& &/html&
(6)实现多文件上传:6.1与单文件上传相似,Struts 2实现多文件上传也很简单。你可以将多个&s:file /&绑定Action的数组或列表。如下例所示:& s:form action ="doMultipleUploadUsingList" method ="POST" enctype ="multipart/form-data" &&&& & s:file label ="File (1)" name ="uploads" /&&&& & s:file label ="File (2)" name ="uploads" /&&&& & s:file label ="FIle (3)" name ="uploads" /&&&& & s:submit /&&/ s:form &
6.2如果你希望绑定到数组,Action的代码应类似:&&& private File[]&&& private String[] uploadFileN&&& private String[] uploadContentT
&&& public File[] getUpload() { return this . }&&& public void setUpload(File[] uploads) { this .uploads = }
&&& public String[] getUploadFileName() { return this .uploadFileN }&&& public void setUploadFileName(String[] uploadFileNames) { this .uploadFileNames = uploadFileN }
&&& public String[] getUploadContentType() { return this .uploadContentT }&&& public void setUploadContentType(String[] uploadContentTypes) { this .uploadContentTypes = uploadContentT }
如果你想绑定到列表,则应类似:private List & File & uploads = new ArrayList & File & ();&&& private List & String & uploadFileNames = new ArrayList & String & ();&&& private List & String & uploadContentTypes = new ArrayList & String & ();
&&& public List & File & getUpload() {&&&&&&& return this .&& }&&& public void setUpload(List & File & uploads) {&&&&&&& this .uploads =&& }
&&& public List & String & getUploadFileName() {&&&&&&& return this .uploadFileN&& }&&& public void setUploadFileName(List & String & uploadFileNames) {&&&&&&& this .uploadFileNames = uploadFileN&& }
&&& public List & String & getUploadContentType() {&&&&&&& return this .uploadContentT&& }&&& public void setUploadContentType(List & String & contentTypes) {&&&&&&& this .uploadContentTypes = contentT&& }
与上传相关的还有:
strut2.0上传文件进度条等相关内容。可google一下.
strtus2.0实现下载
先来看下 Servlet 如何实现文件下载的,直接见代码:
PrintWriter out = response.getWriter(); //不管实际类型,待下载文件 ContentType 统一指定为 application/octet-stream response.setContentType("application/octet-stream"); //中文文件名必须转码为 ISO8859-1,否则为乱码 String fileName = new String("文本文件.txt".getBytes(), "ISO8859-1"); //作为附件下载,相应的 "filename = "+fileName 是在线(浏览器中显示内容)打开 response.setHeader("Content-Disposition", "filename=" + fileName); //因为文件编码也为 ISO8859-1,所以内容须转码成 ISO8859-1,尚不知如何控制下载文本文件的编码 //或有谁知道的,还请告诉我一下。 文件内容可以从物理文件中来,或者数据库中读取填入等等 out.write(new String("Servlet 文件下载测试".getBytes(), "ISO8859-1")); out.close();
知道了上面各行的含义,再来看下 Struts2 的解决方式,其实不过是把某些代码的功能移入到了配置文件而已。在李刚所著的《Struts 2 权威指南》中说 Struts 实现文件下载是由一个 download 拦截器。其实不然,只是一个 StreamResult(org.apache.struts2.dispatcher.StreamResult) 而已,也不像实现文件上传那样要额外的 JAR 包。
在 StreamResult 中有以下几个默认属性要留意一下:&&& public static final String DEFAULT_PARAM = "inputName";
&&& protected String contentType = "text/plain";&&& protected String contentDisposition = "inline";&&& protected String inputName = "inputStream";&&& protected InputStream inputS&&& protected int bufferSize = 1024;StreamResult 的实现细节敬请阅读它的源代码,实现过程一言以蔽之就是:从 inputStream 获取内容,以相应的 contentType、contentDisposition 和 bufferSize 输出给浏览器,对 contentType 和 contentDisposition 的相应设置就能实现文件下载,可对照前面 Servlet 的实现。看个实际的例子吧。
struts.xml 中 Action 的配置,假定 Action 类为 com.unmi.DownLoadAction
&action name="download" class="com.unmi.action.DownloadAction"& &&&result name="success" type="stream"&&!--type 为 stream 应用 StreamResult 处理--& &&&&&&&& &param name="contentType"&application/octet-stream&/param&&!--默认为 text/plain--& &&&&&&&&&&&&&&&&&&&& &!-- 默认就是 inputStream,它将会指示 StreamResult 通过 inputName 属性值的 getter 方法,比如这里就是 getInputStream() 来获取下载文件的内容,意味着你的 Action 要有这个方法 --& &&&&&&&& &param name="inputName"&inputStream&/param& &&&&&&&&&&&&&&&&&&&& &!-- 默认为 inline(在线打开),设置为 attachment 将会告诉浏览器下载该文件,filename 指定下载文件保有存时的文件名,若未指定将会是以浏览的页面名作为文件名,如以 download.action 作为文件名,这里使用的是动态文件名,${fileName}, 它将通过 Action 的 getFileName() 获得文件名 --& &&&&&&&& &param name="contentDisposition"&filename="${fileName}"&/param& &&&&&&&& &param name="bufferSize"&4096&/param&&!-- 输出时缓冲区的大小 --& &&&/result&
说明:对于上面的配置其他参数可以用默认值,关键就是 contentDisposition 要设置为 attachment 才能提示下载,同时用 filename 指定文件名,若直接指定非动态的文件名。
DownloadAction 代码,需要实现 getInputStream() 返回输入流;因前面用的动态文件名,所以须加上 getFileName() 返回文件名,若非动态文件名,则该方法可省去。
package com.unmi. import java.io.*; import java.text.*; import java.util.D /** * 文件下载的 Action&&&&* @author Unmi */ public class NetbookSerialAction { &&public String execute() throws Exception { &&&&//这里可加入权限控制 &&&&return "success"; &&} &&//获得下载文件的内容,可以直接读入一个物理文件或从数据库中获取内容 &&public InputStream getInputStream() throws Exception { &&&&//return new FileInputStream("somefile.rar"); 直接下载 somefile.rar &&&&//和 Servlet 中不一样,这里我们不需对输出的中文转码为 ISO8859-1 &&&&return new ByteArrayInputStream("Struts2 文件下载测试".getBytes()); &&} &&//对于配置中的 ${fileName}, 获得下载保存时的文件名 &&public String getFileName() { &&&&DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); &&&&String fileName = "序列号(" + df.format(new Date()) + ").txt"; &&&&try { &&&&&&//中文文件名也是需要转码为 ISO8859-1,否则乱码 &&&&&&return new String(fileName.getBytes(), "ISO8859-1"); &&&&} catch (UnsupportedEncodingException e) { &&&&&&return "impossible.txt"; &&&&} &&} }
谨记一个就是,要想下载的文件名不乱码就要以 ISO8859-1 字符集进行转码,内容会否乱码可在调试中解决。好啦,启动服务,访问 ,浏览器便会提示下载 序列号().txt,内容为:&#8220;Struts2 文件下载测试&#8221;。
TA的最新馆藏[转]&
喜欢该文的人也喜欢private F//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String imageFileN//
上传输入域FileName
private String imageContentT// 上传文件的MIME类型
1 package cn.itcast.
3 import java.io.F
4 import java.io.FileInputS
5 import java.io.FileNotFoundE
6 import java.io.FileOutputS
7 import java.io.InputS
8 import java.io.OutputS
9 import java.io.S
11 import javax.servlet.ServletC
13 import mons.io.FileU
14 import org.apache.struts2.ServletActionC
16 import com.opensymphony.xwork2.ActionC
17 import com.opensymphony.xwork2.ActionS
19 public class UploadAction1 extends ActionSupport implements Serializable {
private F//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String imageFileN//
上传输入域FileName
private String imageContentT// 上传文件的MIME类型
public File getImage() {
public void setImage(File image) {
this.image =
public String getImageFileName() {
return imageFileN
public void setImageFileName(String imageFileName) {
this.imageFileName = imageFileN
public String getImageContentType() {
return imageContentT
public void setImageContentType(String imageContentType) {
this.imageContentType = imageContentT
public String execute(){
System.out.println(imageContentType);
//处理实际的上传代码
//找到存储文件的真实路径
System.out.println(imageFileName);
ServletContext sc = ServletActionContext.getServletContext();
String storePath = sc.getRealPath("/files");
//构建输入输出流
OutputStream out = new FileOutputStream(storePath+"\\"+imageFileName);
InputStream in = new FileInputStream(image);
byte b[] = new byte[1024];
int len = -1;
while((len=in.read(b))!=-1){
out.write(b, 0, len);
out.close();
in.close();
FileUtils.copyFile(image, new File(storePath,imageFileName));
ActionContext.getContext().put("message", "上传成功!");
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
&form action="${pageContext.request.contextPath}/upload/upload1.action" method="post" enctype="multipart/form-data"&
文件:&input type="file" name="image"/&&br/&
&input type="submit" value="上传"/&
多个文件上传
1 package cn.itcast.
3 import java.io.F
4 import java.io.FileInputS
5 import java.io.FileNotFoundE
6 import java.io.FileOutputS
7 import java.io.InputS
8 import java.io.OutputS
9 import java.io.S
11 import javax.servlet.ServletC
13 import mons.io.FileU
14 import org.apache.struts2.ServletActionC
16 import com.opensymphony.xwork2.ActionC
17 import com.opensymphony.xwork2.ActionS
19 public class UploadAction2 extends ActionSupport implements Serializable {
private File[]//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的
private String[] imagesFileN//
上传输入域FileName
private String[] imagesContentT// 上传文件的MIME类型
public File[] getImages() {
public void setImages(File[] images) {
this.images =
public String[] getImagesFileName() {
return imagesFileN
public void setImagesFileName(String[] imagesFileName) {
this.imagesFileName = imagesFileN
public String[] getImagesContentType() {
return imagesContentT
public void setImagesContentType(String[] imagesContentType) {
this.imagesContentType = imagesContentT
public String execute(){
if(images!=null&&images.length&0){
ServletContext sc = ServletActionContext.getServletContext();
String storePath = sc.getRealPath("/files");
for(int i=0;i&images.i++)
FileUtils.copyFile(images[i], new File(storePath,imagesFileName[i]));
ActionContext.getContext().put("message", "上传成功!");
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
&form action="${pageContext.request.contextPath}/upload/upload2.action" method="post" enctype="multipart/form-data"&
文件1:&input type="file" name="images"/&&br/&
文件2:&input type="file" name="images"/&&br/&
&input type="submit" value="上传"/&
struts.xml中配置
设置文件上传大小
&constant name="struts.multipart.maxSize" value=""&&/constant&
&package name="upload" namespace="/upload" extends="mypackage"&
&action name="upload1" class="cn.itcast.action.UploadAction1" method="execute"&
&result name="success"&/success.jsp&/result&
&action name="upload2" class="cn.itcast.action.UploadAction2" method="execute"&
&result name="success"&/success.jsp&/result&
&/package&
阅读(...) 评论()struts2通过FromData+ajax实现文件上传(页面无刷新) - CSDN博客
struts2通过FromData+ajax实现文件上传(页面无刷新)
今天要做一个能获取Oracle数据库备份文件(.dmp)来实现网页还原Oracle数据库
通过file标签来获得文件的绝对路径,再调用RunTime的exec方法来实现批处理调用实现
遇到的问题:
通过浏览器获取文件绝对路径,只有ie可以,其他浏览器处于安全考虑,只能获得文件名。
解决方案:
把file标签中选中的文件,上传到服务器的upload文件夹,在调用服务器的.dmp文件来实现还原数据库操作
做到这里就需要我们通过ajax实现文件上传,在网上找了一下文件,可以通过FromData方法来封装form表单中的数据
具体例子如下:
ajax的代码:
$(&input[type=&#39;button&#39;]&).click(function(){
var formData = new FormData($(&#form&)[0]);
type: &POST&,
url: &${pageContext.request.contextPath}/dbbak/imp.action&,
//data:{path:$(&input[type=&#39;file&#39;]&).val()},
data:formData,
processData: false,
contentType: false,
dataType: &json&,
success: function(data){
alert(data.dbbak);
html的代码:
&form id=&form& enctype=&multipart/form-data&&
&div class=&searchBar&&
&table class=&searchContent&&
&tbody style=&text-align:&&
&input name=&file& type=&file& accept=&.dmp& value=&请选择文件& &&/input&
&input type=&button& value=&数据还原& &&/input&
这里就能把form表单中的file传到后端,在运用输入输出流来实现上传功能 &
//由于用file获取路径部分浏览器不支持
//目前的解决方案是把目标文件上传到项目uploud目录再进行执行。
// 设置上传文件目录
HttpServletRequest request=ServletActionContext.getRequest();
String uploadPath = request.getRealPath(&/&) + &Uploud&;
//基于myFile创建一个文件输入流
is = new FileInputStream(file);
// 设置目标文件
File toFile = new File(uploadPath, this.getFileFileName());
toFile.createNewFile();
// 创建一个输出流
os = new FileOutputStream(toFile);
//设置缓存
byte[] buffer = new byte[1024];
int length = 0;
//读取myFile文件输出到toFile文件中
while ((length = is.read(buffer)) & 0) {
os.write(buffer, 0, length);
is.close();
//关闭输出流
os.close();
} catch (IOException e2) {
e2.printStackTrace();
ps:这里面用到的file 和 fileFileName,只需要在action中声明变量和get set ,struts2会自动调用set方法注入内容。
本文已收录于以下专栏:
相关文章推荐
jQuery插件ajaxFileUpload可以实现ajax文件上传,使用非常简单。
下面做一个简单的demo(以上传图片为例),实现图片上传,图片显示,图片下载
$.ajaxFileUpload( ...
单文件上传参考:http://blog.csdn.net/itmyhome1990/article/details/
单文件和多文件的实现区别主要修改两点,
一是插件ajaxfileu...
首先在前段引入jquery.js和ajaxfileupload.js文件,一般引入放在最后面,这样可以通过jquery的jQuery.noConflict();方法避免冲突,其中jquery.js和a...
由于项目需求,需要实现无刷新上传图片,在网上找了好多例子都不是很好 最总让我找到了Struts2 +jquery+ajaxfileupload 方式,个人尝试下来比较的不错。
所用到的包和文件
.cn/s/blog_7fa06ce30100sdvl.html
.cn/s/blog_674b...
积累点滴,从这一刻开始
jsp页面部分
第一步: jsp页面导入 ajaxfileupload.js文件
第二步:编写上传文件的文本框:
struts2后台部...
1、页面内容如下:
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160...
这几天在做项目时有用到一个form表单来上传多个文件,并且要求不能重新刷新。当时在做的时候由于不是很了解这个东西,导致还是走了一些弯路的,现在把代码贴出来,供大家一起交流
前台form代码:
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)  文件的上传和下载是网页开发中经常要遇到的问题,本文将结合MyEclipse+Struts2开发一个文件上传系统。
  本文利用的Java组件是Commons fileUpload(commons-fileupload-1.2.1.jar)
1 文件上传:
  这是实现后的页面效果图:
  打开MyEclipse,建立web project名为DDDemo1,右击MyEclipse&Project facets,选择struts2.x,添加Struts2组件。
  注意:在选择URL pattern时必须选择【/*】,否则将无法读取struts标签,当然如果你不用struts标签就无所谓了╮(╯_╰)╭
  首先是输入页面fileUploadInput.jsp,如上图所示,代码为:
1 &%@ page language="java" import="java.util.*" pageEncoding="GB18030"%&
3 String path = request.getContextPath();
4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6 &%@ taglib prefix = "s" uri = "/struts-tags" %&
7 &!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&
&title&Upload File&/title&
&s:form action = "fileUpload" enctype = "multipart/form-data" method = "post"&
&s:file name = "file" label = "File"/&
&s:submit/&
20 &/html&
  如果经过Action返回SUCCESS,跳转页面为fileUploadSuccess.jsp,同时显示文件名称及扩展名。
1 &%@ page language="java" import="java.util.*" pageEncoding="GB18030"%&
3 String path = request.getContextPath();
4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6 &%@ taglib prefix = "s" uri = "/struts-tags" %&
7 &!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&
&title&Upload File&/title&
&h1&File Upload Success&/h1&
File Name:&s:property value = "fileFileName"/&&br/&
File Content Type:&s:property value = "fileContentType"/&
&s:submit value = "返回" align="left" onclick="javascript:history.go(-1);" /&
20 &/html&
&  如果失败,则跳转到fileUploadError.jsp,按键"返回"返回到之前页面
1 &%@ page language="java" import="java.util.*" pageEncoding="GB18030"%&
3 String path = request.getContextPath();
4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6 &%@ taglib prefix = "s" uri = "/struts-tags" %&
7 &!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&
&title&Upload File&/title&
&h1&File Upload Error&/h1&
&s:submit value = "返回" align="left" onclick="javascript:history.go(-1);" /&
18 &/html&
1.3 文件上传Action页面FileUploadAction
3 import java.io.F
4 import java.io.FileInputS
5 import java.io.FileOutputS
6 import java.io.InputS
7 import java.io.OutputS
9 import com.opensymphony.xwork2.ActionS
11 public class FileUploadAction extends ActionSupport {
private static final long serialVersionUID = -5645652L;
private String fileContentT
private String fileFileN
public String execute() throws Exception {
byte[] buffer = new byte[1024];
InputStream in = new FileInputStream(file);
OutputStream out = new FileOutputStream(new File("f:///Test//"
+ fileFileName));
int length = in.read(buffer);
while (length & 0) {
out.write(buffer);
length = in.read(buffer);
in.close();
out.flush();
out.close();
return SUCCESS;
public File getFile() {
public void setFile(File file) {
this.file =
public String getFileFileName() {
return fileFileN
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileN
public String getFileContentType() {
return fileContentT
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentT
1.4 struts.xml
1 &?xml version="1.0" encoding="UTF-8" ?&
2 &!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"&
3 &struts&
&package name="qian" extends="struts-default"&
&action name="fileUpload" class="action.FileUploadAction"&
&result name = "input"&fileUploadError.jsp&/result&
&result name = "success"&fileUploadSuccess.jsp&/result&
&/package&
10 &/struts&
1.5 文件类型过滤
这里以图片格式为例,将struts.xml修改为:
1 &?xml version="1.0" encoding="UTF-8" ?&
2 &!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"&
3 &struts&
&package name="qian" extends="struts-default"&
&action name="fileUpload" class="action.FileUploadAction"&
&interceptor-ref name="defaultStack"&
&!-- 设置文件类型 --&
&param name="fileUpload.allowedTypes"&
image/bmp,image/png,image/gif,image/jpeg,image/jpg
&!-- 限制文件大小,这里设置10MB --&
&param name="fileUpload.maximumSize"&&/param&
&/interceptor-ref&
&result name = "input"&fileUploadError.jsp&/result&
&result name = "success"&fileUploadSuccess.jsp&/result&
&/package&
18 &/struts&
  对上传系统进行测试,首先输入地址,选择上传的文件:
  成功界面,并在相应磁盘中找到上传的文件:
  失败界面:
阅读(...) 评论()}

我要回帖

更多关于 易语言 读入exexl数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信