struts2之单文件上传(7)

前台页面jsp

<form action="uploadAction" enctype="multipart/form-data" method="post">
<label>上传文件:</label>
<input type="file" name="myfile"/>
<input type="submit" value="提交"/>
</form>

action

public class UploadAction extends ActionSupport {
//三个全局属性注意命名规则,属性名的前半部分保持一致,不然报空值
//上传的文件(旧文件)
private File myfile;
//上传的文件名(旧文件)
private String myfileFileName;
//上传文件类型(旧文件)
private String myfileFileContentType;

//处理上传请求
public String upload(){
//生成新的文件名(使用uuid)
String newmyfilename = UUIDUtil.getUUID()+myfileFileName.substring(myfileFileName.lastIndexOf("."));
//指定上传的位置
String path = ServletActionContext.getServletContext().getRealPath("upload");
//上传文件的位置
String filepath = path+File.pathSeparator+newmyfilename;
System.out.println("filepath = "+filepath);
//构建新文件
File newfile = new File(filepath);

//读入写出 从旧文件读内容到新文件
FileInputStream fis = null;
FileOutputStream fos = null;

try {
//将旧文件封装到输入流
fis = new FileInputStream(myfile);
//将新文件封装到输出流
fos = new FileOutputStream(newfile);
//设置一个字节数组缓冲内容
byte [] bt = new byte[1024];
int len = 0;
/**
* 循环读取缓冲区的内容
* 输入流不断的将字节读入到缓冲区(旧文件到缓冲区)
* 输出流不断的将字节写出到新文件(缓冲区到新文件)
*/
while((len = fis.read(bt))!=-1){
fos.write(bt, 0, len);
}
fos.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return SUCCESS;
}

public File getMyfile() {
return myfile;
}

public void setMyfile(File myfile) {
this.myfile = myfile;
}

public String getMyfileFileContentType() {
return myfileFileContentType;
}

public void setMyfileFileContentType(String myfileFileContentType) {
this.myfileFileContentType = myfileFileContentType;
}

public String getMyfileFileName() {
return myfileFileName;
}

public void setMyfileFileName(String myfileFileName) {
this.myfileFileName = myfileFileName;
}

}

struts.xml

<!-- struts2中文件上传拦截
struts2 的核心包下的default.properties文件里有默认的大小为struts.multipart.maxSize=2097152,也就是2M. 这是struts2默认拦截,
解决方法:在struts.xml配置文件中,添加
<constant name="struts.multipart.maxSize" value="10485760"/>
这里的value单位为B,即10485760B = 10MB。
-->
<constant name="struts.multipart.maxSize" value="10485760"/>
<package name="upload" namespace="/" extends="struts-default">
<action name="uploadAction" class="com.oak.action.UploadAction" method="upload">
<result>
/welcome.jsp
</result>
</action>
</package>

时间: 2024-08-01 04:34:32

struts2之单文件上传(7)的相关文章

Struts2之单文件上传

1 界面 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request

Struts2单文件上传原理及示例

一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式. 2.multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里. 3.text/plain:这种方式主要适用于直接通过表单发送邮件的

关于Struts2单文件上传

要实现Struts2框架的文件上传,需要用到2个jar包 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar 由于文件解析Struts2内部已经帮我们做好了,大大降低了开发难度,我们只需要在Action里设置好对应的参数,目录进行使用即可. 来个小示例: upload.jsp 这个页面的表单有三点需要注意的: 1.表单必须使用post方式提交 2.表单编码类型 enctype="multipart/form-data"   3.<s

【Java】Struts2文件上传-单文件上传,多文件上传

单文件上传 表单: <form action="upload1.action" method="post" enctype="multipart/form-data"> 姓名:<input type="text" name="name" id="name"><br> 照片:<input type="file" name=&qu

struts2中的文件上传和下载

天下大事,必做于细.天下难事,必作于易. 曾经见过某些人,基础的知识还不扎实就去学习更难的事,这样必然在学习新的知识会很迷惑结果 再回来重新学习一下没有搞懂的知识,这必然会导致学习效率的下降!我写的这篇上传和下载都很基础. 十分适合初学者! jsp:页面 <!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端--> <for

笨鸟先飞之Java(一)--使用struts2框架实现文件上传和下载

不管是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个常用功能会有很多种解决方式,但是struts2的框架却能给我们一个比较简单的方式,下面就一起来看吧: 文件上传: 首先来看实现上传功能的表单,Index.jsp: <span style="font-family:FangSong_GB2312;font-size:18px;"><%@ page language="java" contentType=&q

[转]Struts2多个文件上传

转载至:http://blog.csdn.net/hanxiaoshuang123/article/details/7342091 Struts2多个文件上传多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传.都大同小异.一 介绍1. 在struts2文件上传的时候要先导入struts2的几个包,在struts2.3.1.2中,导入的包如图所视: 从图上可以看出其中文件上传所需要的是包为commons-fileupload-1.2.2.jar和commons-io-2.0

Struts2学习之文件上传/下载&amp;ValueStack(三)

简介 今天是学习Struts2第三天,也算struts2准备前奏告一段落,提升部分只能在后期深入了解,多看源码,多参阅资料.今天所学的知识点文件上传.下载/ValueStack&OGNL/Struts2标签 文件上传/下载 文件上传简介 a). 企业常用文件上传技术 : jspSmartUpload(主要应用 JSP model1 时代) . fileupload (Apache commons项目中一个组件). Servlet3.0 集成文件上传 Part类 b). Struts2 对文件上传

笨鸟先飞之Java(一)--使用struts2框架实现文件上传

无论是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个经常使用功能会有非常多种解决方案,可是struts2的框架却能给我们一个比較简单的方式,以下就一起来看吧: 文件上传: 首先来看实现上传功能的表单.Index.jsp: <span style="font-family:FangSong_GB2312;font-size:18px;"><%@ page language="java" contentType