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. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath不执行的问题

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...

  2. Android—SQLITE数据库的设计和升降级

    Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...

  3. 最简MacOs10.8安装

    虚拟机中安装Mac Os X的方法网上很多很多,但是对刚接触的朋友来讲肯定不是一件容易的事,这个自己深有体会,包括去年已经装好过,今年再找教程安装都装不起来,期间还出现了各种问题,幸好去年装好之后备份 ...

  4. c语言中的部分字符串和字符函数

    // // main.c // homeWork1230 // // #include <stdio.h> #include <string.h> #include <c ...

  5. 再也不用管UIImagePicker的代理了

    EasyImagePicker 闲暇之余对UIImagePicker做了封装,将代理调用的方式封装成block回调的方式,这样一行代码就能够搞定UIImagePicker的使用,包括选择图片,取消选择 ...

  6. 又一个悬而未决的bug被解决

    之所以叫悬而未决,是因为从我第一次见到这个bug,到现在大概已经过了快两年的时间,期间好几次想解决这个问题,但是一直碍于环境和一些技术上的限制,没有解决,直到昨天在一系列的因素作用下,终于解决了这个问 ...

  7. [windows]禁止指定用户使用远程桌面服务登录

    windows2003下禁止用户远程登录的方法如下: 1.打开控制面板 > 管理工具 > 本地安全策略 2.安全策略-->本地策略-->用户权限分配-->通过终端服务拒绝 ...

  8. INFORMATICA 的调优之 INFORMATICA SERVER TUNING

    INFORMATICA SERVER的调优我认为主要从两个级别来做,一个是MAPPING级别,一个是SESSION级别. 对于MAPPING级别的调优: 一  对MAPPING数据流向的优化: 1 控 ...

  9. nginx服务器中的安全配置

    一.关闭SELinux 安全增强型Linux(SELinux)的是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制. 但是,SELinux带来的附加安全性和使用复杂性上不成比例,性价比不 ...

  10. 烂泥:LVM学习之逻辑卷LV及卷组扩容VG

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章中介绍了有关LVM基础的知识,这篇文章我们来介绍如何给LVM的逻辑卷LV及卷组VG扩容. LVM的逻辑卷,我们知道它最后相当于一个分区,既然是一 ...