struts1文件上传示例简介

虽然现在在企业中已经很少使用struts1版进行开发了,但本文的主旨在于熟悉其框架中的思想,以及各个框架的一些区别。下面就struts1中文件上传的配置步骤作一下简要的说明。
首先,要相关的jar包,这点不管你是使用哪种框架都要做这步操作,这是没得说的。在引用相关的资源文件后,我们就要配置一些基本的actoin,这些配置步骤在这里就不做说明了,可参考我之前写过的一篇博文《java中struts 框架基本配置小结》。下面我就直接说明一下,jsp页面的配置以及后台java代码是如何编写的。
1、具体的jsp代码如下:

<form action="/testfileupload/fileupload.do" method="post" enctype="multipart/form-data">       
    <input type="file" name="formFile" id="formFile"/>
    <br/>
    <input type="submit" value="上传">
</form>

这里需要注意的是form标签的enctype值必须为”multipart/form-data”,action属性为对应后台配置的action表单提交时调用。
当然我们还要在Tomcat的WebContext下创建一个文件夹,用以保存上传的文件,本文就以upload文件夹为例
这里写图片描述
对应后台的action处理代码如下:

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.ev.formbean.FileBean;

public class FileUploadAction extends Action {

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        FileBean file = (FileBean)form;
        FormFile formFile = file.getFormFile();
        InputStream in = formFile.getInputStream();
        String fileName = formFile.getFileName();
        int size = formFile.getFileSize();
        byte[] arr = new byte[size];
        in.read(arr);       
        String path = super.servlet.getServletContext().getRealPath("/upload");
        OutputStream out = new FileOutputStream(path+"\\"+fileName);
        out.write(arr);
        in.close();
        out.close();
        System.out.println("上传成功!");
        return mapping.findForward("index");
    }

}

其实这些后台代码的基本思想就是一些输入输出流的读写而已。过程就是从FormFile类型的对象(struts1内置的类型)获得一个输入,然后将数据存入到一个数组中,再根据文件路径和文件名创建输出流,从而将文件存到文件夹中。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值