ssm框架图片上传

本文档介绍了在SSM框架下进行图片上传的详细步骤,包括环境准备、下载maven依赖、配置springMVC、创建图片物理存储路径、编写前端JSP页面以及后台controller的实现。特别提醒在JSP中form表单的enctype属性需设置为multipart/form-data。
摘要由CSDN通过智能技术生成

环境准备

  1. 下载jar包(maven)
<!-- 上传组件包 -->  
        <dependency>  
            <groupId>commons-fileupload</groupId>  
            <artifactId>commons-fileupload</artifactId>  
            <version>1.3.1</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-io</groupId>  
            <artifactId>commons-io</artifactId>  
            <version>2.4</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-codec</groupId>  
            <artifactId>commons-codec</artifactId>  
            <version>1.9</version>  
        </dependency>  
  1. 配置springMVC
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->  
    <bean id="multipartResolver"    
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    
        <!-- 默认编码 -->  
        <property name="defaultEncoding" value="utf-8" />    
        <!-- 文件大小最大值 -->  
        <property name="maxUploadSize" value="10485760000" />    
        <!-- 内存中的最大值 -->  
        <property name="maxInMemorySize" value="40960" />    
        <!-- 启用是为了推迟文件解析,以便捕获文件大小异常 -->
        <property name="resolveLazily" value="true"/>
    </bean> 
  1. 创建 图片物理文件夹
    在这里插入图片描述
    在这里插入图片描述
  2. 编写jsp
    注意form中的enctype属性的值为multipart/form-data
<form action="${pageContext.request.contextPath }/items/updateItems" enctype="multipart/form-data" method="post">
    商品列表:
    <table width="100%" border=1>
        <tr>
            <td>商品id</td>
            <td>商品图片</td>
        </tr>

        <%--itemsList是controller中传过来键--%>
        <c:forEach items="${list }" var="item">
                <tr>
                    <td><input type="text" id="id" name="id" value="${item.id }"></td>
                	 </td>
                	 <td>
                        <c:if test="${item.pic !=null}">
                            <img src="/pic/${item.pic}" width="100" height="100">
                        </c:if>
                        <input type="file" name="items_pic">
                	</td>
                </tr>
        </c:forEach>
    </table>
    <input type="submit" value="提交">
</form>

5.编写controller

@RequestMapping("/updateItems")
    public String updateItems(Model model,HttpServletRequest request,ItesmCustom itesmCustom,MultipartFile items_pic) throws IOException {

        //上传图片
//        获取图片原始名称
        String originalFilename=items_pic.getOriginalFilename();
//        上传图片
        if(items_pic!=null && originalFilename!=null &&originalFilename.length()>0){
            //设置图片储存的物理路径
            String pic_path="D:\\ider\\temp\\";
//            设置新的图片名称
            String nuwFilename= UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
//            新图片
            File nuwFil=new File(pic_path+nuwFilename);
//            写入磁盘
            items_pic.transferTo(nuwFil);
//            将图片名称保存到实体
            itesmCustom.setPic(nuwFilename);
        }

        List<ItesmCustom> list=itemsCustomService.findItemsList();
        ItemsQueryVo itemsQueryVo = new ItemsQueryVo();
        itemsQueryVo.setItesmCustom(itesmCustom);
        itemsCustomService.updateItems(itemsQueryVo);
        model.addAttribute("list",list);
        return "views/itemsList";

    }

在下为小白,正在学习中,以往能帮助你,并在此记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值