2016-08-31

一、       文件上传

  1. 利用commons-fileupload-1.2.1.jar实现简单的上传文件,首先在页面上填写表单,记得加上enctype="multipart/form-data",主要是确保上传文件的正确编码,设置表单的MIME编码,让form中的input值以2进制传过去,这样就能用于上传文件了。

  2. 配置struts.xml,完成fileUpload与action实例映射, 这里以上传一个图片文件为例

<action name="fileUpload" class="action.UploadAction" method="upload">

             <interceptor-ref name="fileUpload"> //设置fileUpload过滤器

                <param name="allowedTypes">image/pjpeg,image/jpg,image/jpeg,image/bmp,

                   image/gif,image/png</param>   //设置允许上传的文件类型

                <param name="maximumSize">2097152</param>  //上传文件的最大Size

             </interceptor-ref>

             <interceptor-ref name="defaultStack"></interceptor-ref> //继承默认的拦截器

             <param name="savePath">/upload/file</param> //设置上传的文件保存路径

             <result>/upload/success.jsp</result> //成功后的跳转页面

             <result name="input">/upload/upload.jsp</result> //内部失败返回INPUT

   </action>

设置完后在webRoot下创建路径/upload/file,然后配置Tomcat生成文件夹,用来存放上传文件。

   

   

3. 然后写对应UploadAction

public class UploadAction extends ActionSupport {

private File pic; //这里的pic可以自己取名XXX

private String picContentType;  //这里命名格式必须为XXXContentType与前面的文件命名一致

private String picFileName;  //XXXFileName也许一致

private String nickName;

private String savePath; //获取参数savePath

public String upload(){

System.out.println("contentType:"+picContentType);

System.out.println("filename:"+picFileName);

System.out.println("nickName:"+nickName);

System.out.println("savePath:"+savePath);

BufferedInputStream bis = null;

BufferedOutputStream bos = null;

try {

bis = new BufferedInputStream(new FileInputStream(pic)); //获取文件的输入流

ServletContext application = ServletActionContext.getServletContext();

//getRealPath 获取文件输出相对路径在硬盘上的实际路径平在后面加上传进来的文件名,这样才能成功上传

bos = new BufferedOutputStream(new FileOutputStream(application.getRealPath(

savePath)+"/"+picFileName));

int r = 0;

while((r=bis.read())!=-1){

bos.write(r);

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

try {

if(bis!=null){

bis.close();

}

if(bos!=null){

bos.close();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return SUCCESS;

}

另外最后不要忘记加上setter/getter方法。

4.最后再完成上传成功后的显示页面 success.jsp

现在可以启动Tomcat服务器测试了,进入upload.jsp后上传了桌面上的一张图片,

上传成功!

二、       多个文件上传

多个文件上传主要是在action中用数组接住,然后迭代输出就行,基本上步骤一样。

先写上传页面,这里上传2张图片。

<action name="filesUpload" class="action.UploadsAction" method="upload">

<interceptor-ref name="fileUpload">

<param name="allowedTypes">

image/pjpeg,image/jpg,image/jpeg,image/bmp,image/gif,image/png</param>

<param name="maximumSize">4097152</param>

</interceptor-ref>

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

<param name="savePath">/upload/file</param>

<result>/upload/success2.jsp</result>

<result name="input">/upload/upload2.jsp</result></action>

接着进行Struts.xml配置。

这里action 上传文时用数组接住就行。

最后迭代文件名,显示图片。

****记录下今天的学习内容,如果有什么讲的不清楚的地方欢迎补充

struts2中简单的文件上传的更多相关文章

  1. Struts2的简单的文件上传

    1文件上传的流程: 第一步:首先得用表单标签的<s:file>在客户端接收上传的文件例如: <%@ page language="java" import=&qu ...

  2. ASP.NET 中对大文件上传的简单处理

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  3. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  4. 使用jsp/servlet简单实现文件上传与下载

    使用JSP/Servlet简单实现文件上传与下载    通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...

  5. Django 实现简单的文件上传

    今天分享一下Django实现的简单的文件上传的小例子. 步骤 创建Django项目,创建Django应用 设计模型 处理urls.py 以及views.py 设计模板,设计表单 运行项目,查看数据库 ...

  6. SSM-SpringMVC-32:SpringMVC中灌顶传授文件上传

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 我将用自认为最简单的语言,描述Springmvc的文件上传,来将老夫毕生功力灌顶传授给你 首先文件上传,又简至 ...

  7. Struts2框架下的文件上传文件类型、名称约定

    Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ...

  8. Java实现一个简单的文件上传案例

    Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘 ...

  9. Spring中MultipartHttpServletRequest实现文件上传

    Spring中MultipartHttpServletRequest实现文件上传 转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传  用户必须能 ...

随机推荐

  1. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q22-Q24)

    Question22You create a Feature.You need to remove the link to the Site Content Type page from the Si ...

  2. 通过sftp实现文件分发功能

    1       环境: 分发服务器:ubuntu server 64bit,192.168.56.22 接受服务器:windows server 2008,192.168.56.102 2       ...

  3. Android项目实战(十五):自定义不可滑动的ListView和GridView

    不可滑动的ListView (RecyclweView类似) public class NoScrollListView extends ListView { public NoScrollListV ...

  4. Android WebView 向上向下滑动监听

    在手势的 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,   float velocityY) {}代码 ...

  5. 人机交互—对win10自带输入法的评价

    在我的电脑换成win10系统后我就用他自带的输入法,它可以中英文切换,用起来很方便,就用了它,就没有下载别的输入法. 用户界面:这个输入法的界面非常简单,没有像搜狗,百度之类的皮肤一说,看起来很简单, ...

  6. 使用 ServiceStack.Text 序列化 json 比Json.net更快

    本节将介绍如何使用ServiceStack.Text 来完成高性能序列化和反序列化操作. 在上章构建高性能ASP.NET应用的几点建议 中提到使用高性能类库,有关于JSON序列化的讨论. 在诊断web ...

  7. Asp.Net远程调试

    1.在本地找到VS安装目录下的 Visual Studio Tools 文件夹  并进入Remote Debugger Folder文件夹 2.根据服务器的操作系统是32位还是64位,选择下面的文件夹 ...

  8. 比较全面的MySQL优化参考(上下篇)

    转自:http://imysql.com/2015/05/24/mysql-optimization-reference-1.shtml 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨 ...

  9. 问题解决——SolidWorks 已停止工作 (Windows7 + SolidWorks 2010 SP0.0)

    给同事的SolidWorks解决问题时偶然间发现的. -------------------------------------------------------------- 本文原创,转载请注明 ...

  10. sql date时间加减几天几小时

    //时间转成年月日时分秒select date_format(now(),'%Y%m%d%H%i%S')//时间转成年月日select date_format(now(),'%Y%m%d')//去年此 ...