Struts1上传文件

1.开发jsp页面,首先在页面顶部设置编码格式以及添加Struts  html标签库支持:

<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

upload.jsp页面代码为:

<%@ page language="java" pageEncoding="GBK"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>upload</title>
</head>
<body>
    <html:form action="uploadFile" enctype="multipart/form-data">
    <html:file property="myFile"></html:file>
    <html:submit value="上传"></html:submit>
    </html:form>
</body>

</html>

注意:<html:form>标签中的enctype属性要设置为multipart/form-data,这样表单将会以二进制流的方式处理表单数据。

2.开发ActionForm,用于保存页面提交的数据。

在JSP页面 ,我们运用的是<html:file>标签,在ActionForm中,要用到FormFile类型。

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class uploadForm extends ActionForm{
    private FormFile myFile;

    public FormFile getMyFile() {
        return myFile;
    }

    public void setMyFile(FormFile myFile) {
        this.myFile = myFile;
    }
    
}

注意:ActionForm中的变量名要与jsp页面属性名相同。

3.开发控制器Action。

public class uploadAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        uploadForm upForm = (uploadForm) form;// 表单
        String path = this.getServlet().getServletConfig().getInitParameter(
                "uploadPath");// 获取配置文件中的文件保存路径
        InputStream inStream = upForm.getMyFile().getInputStream();// 输入流
        FileOutputStream outStream = new FileOutputStream(path
                + upForm.getMyFile().getFileName());// 输出流
        response.setCharacterEncoding("GBK");
        PrintWriter outPrintWriter = response.getWriter();
        byte buffer[] = new byte[1024];
        int count = 0;
        try {
            while ((count = inStream.read(buffer)) > 0) {
                outStream.write(buffer, 0, count);
            }
            outStream.close();
            upForm.getMyFile().destroy();
            outPrintWriter.print("上传成功!");
        } catch (Exception e) {
            outPrintWriter.print(e.getMessage());
        }
        return null;
    }
}

4.相关配置。

(1)web.xml中配置上传文件保存路径

在web.xml配置文件中的 <servlet>中添加配置:

<init-param>
            <param-name>uploadPath</param-name>
            <param-value>D:/upload/</param-value>

</init-param>

(2)在struts-config.xml中配置form-bean及acton

在struts-config.xml中配置form-bean:

  <form-beans>
       <form-bean name="uploadForm" type="%package%.uploadForm"></form-bean>
  </form-beans>

在struts-config.xml中配置action:

  <action-mappings>
     <action attribute="uploadForm" name="uploadForm"
    path="/uploadFile"
    scope="request"
    type="%package%.uploadAction"></action>        
  </action-mappings>

%package%代表类所在的包。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值