基于struts2的图片上传

图片上传

  • jsp页面
<form id="form" name="form" action="${basePath }nsfw/user_add.action" method="post" enctype="multipart/form-data">

    <tr>
            <td class="tdBg" width="200px">头像:</td>
            <td>
                <input type="file" name="headImg"/>
            </td>
       </tr>
   </form>
  • 设置struts2过滤器
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!--设置struts的maxSize-->
    <constant name="struts.multipart.maxSize" value="50000000"/>

    <!--设置struts的映射-->
    <package name="user-action" namespace="/nsfw" extends="struts-default">
        <action name="user_*" class="main.java.cn.itcastTax.nsfw.user.controller.UserController" method="{1}">
            <result name="{1}">/WEB-INF/jsp/nsfw/user/{1}.jsp</result>
            <result name="list" type="redirectAction">
                <param name="actionName">user_listUI</param>
            </result>

        </action>


        <action name="add"
                class="com.silon.web.struts.action.PicAction" method="add">
            <!-- 拦截图片上传类型 -->
            <interceptor-ref name="fileUpload">

                <!--  这里是对单个上传文件大小的限制  -->
                <param name="maximumSize">50000000</param>
            </interceptor-ref>
            <interceptor-ref name="defaultStack" />
            <result name="input">/pages/pic/picUpload/addUI.jsp</result>
        </action>

    </package>

</struts>
  • 编写controll
    //接收图片属性(必须有set和get方法)
    private File headImg;//必须与jsp中的name一致
    private String headImgContentType;
    private String headImgFileName;
    public String getHeadImgFileName() {
        return headImgFileName;
    }

    public void setHeadImgFileName(String headImgFileName) {
        this.headImgFileName = headImgFileName;
    }

    public File getHeadImg() {
        return headImg;
    }

    public void setHeadImg(File headImg) {
        this.headImg = headImg;
    }

    public String getHeadImgContentType() {
        return headImgContentType;
    }

    public void setHeadImgContentType(String headImgContentType) {
        this.headImgContentType = headImgContentType;
    }
//保存新增
    public String add(){

        try {
            if(user != null){

                //处理头像
                if (headImg!=null){

                    //保存头像到upload/user
                    //获取保存路径的绝对地址
                    String finePath = ServletActionContext.getServletContext().getRealPath("upload/user");

                    //修改头像名称
                    String fineName= UUID.randomUUID().toString()+headImgFileName.substring(headImgFileName.lastIndexOf("."));
                    //复制头像
                    FileUtils.copyFile(headImg,new File(finePath,fineName));
                    //设置用户头像路径
                    user.setHeadImg("user/"+fineName);
                    fineName=null;
                }
                //保存到数据库
                userService.save(user);
            }
        }catch (Exception e){
            e.printStackTrace();
        }

        return "list";
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值