springmvc图片上传

springmvc图片上传

加入jar包
在这里插入图片描述
在springmvc配置文件中加入

 <!-- 上传文件 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"/>
        <!-- 最大内存大小5MB-->
        <property name="maxInMemorySize" value="5242440"/>
        <property name="resolveLazily" value="true"> </property>
    </bean>

编写handle

package com.xieli.liu.controller;

import com.xieli.liu.exception.UserException;
import com.xieli.liu.pojo.RoleUser;
import com.xieli.liu.pojo.UserInfo;
import com.xieli.liu.service.UserInfoService;
import com.xieli.liu.validation.UserInfoGroup1;
import com.xieli.liu.validation.UserInfoGroup2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.List;
import java.util.UUID;

/**
 * Created by Administrator on 2019-11-27.
 */
@Controller
@RequestMapping("/user")
public class UserInfoController {

    @Autowired
    UserInfoService userInfoService;

    @RequestMapping("/findSaveUser")
    public ModelAndView findSaveUser(ModelMap map,UserInfo userInfo) throws Exception {
        List<UserInfo> userInfos = userInfoService.selectUserList(userInfo);
        ModelAndView mv = new ModelAndView("editusermasseger");
        mv.addObject("user", userInfos.get(0));
        return mv;
    }
    @RequestMapping("/saveUser")
    public String saveUser(ModelMap map, HttpServletRequest request, UserInfo userInfo, MultipartFile multipartFile) throws Exception {
        String newFileName=null;
        if(!multipartFile.isEmpty()){
            //文件路经
            String filePath = request.getSession().getServletContext().getRealPath("/")+"upload/";
            //原始文件名
            String originalFilename = multipartFile.getOriginalFilename();
            //新的文件名
            newFileName= UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
            multipartFile.transferTo(new File(filePath+newFileName)); // 转存文件
        }
        if(newFileName!=null){
            userInfo.setPhoto(newFileName);
        }
        //修改数据
        userInfoService.updataUser(userInfo);
        return "forward: findSaveUser.action";
    }
}

编写页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
    <title>用户信息</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user/saveUser.action" method="post" enctype="multipart/form-data">
    <table style="border: solid 1px">
        <tr>
            <td>姓名</td>
            <td ><input type="text" name="userId" id="userId" value="${user.userId}"/></td>
        </tr>
            <tr>
                <td>姓名</td>
                <td ><input type="text" name="userName" id="userName" value="${user.userName}"/></td>
            </tr>
        <tr>
            <td>密码</td>
            <td ><input type="text" name="userPwd" id="userPwd" value="${user.userPwd}"/></td>
        </tr>
        <tr>
            <td>昵称</td>
            <td><input type="text" name="nickName"  id="nickName" value="${user.nickName}"/></td>
        </tr>
        <tr>
           <td colspan="2">
               <input name="multipartFile" type="file">
               <c:if test="${user.photo!=null}">
                   <img src="${pageContext.request.contextPath}/upload/${user.photo}" width="100" height="100">
               </c:if>
           </td>
        </tr>
    </table>
    <input type="submit" value="保存"/>
</form>

</body>
<script type="text/javascript">

</script>
</html>

测试
输入http://localhost:8080/ssm/user/findSaveUser.action?userId=4
在这里插入图片描述
选择要上传的图片点击“保存”
在这里插入图片描述
在这里插入图片描述

Spring MVC是一个基于Java的开源框架,用于构建Web应用程序。它采用了MVC(Model-View-Controller)的架构模式,可以让开发人员更容易地分离关注点并实现高效的代码组织。 在Spring MVC中实现图片的上传和下载是相对简单的。下面是一个简单的步骤说明: 1. 图片上传: 首先,需要在Spring MVC的配置文件中配置一个用于上传文件的MultipartResolver。然后,创建一个Controller方法用于处理文件上传请求。在这个方法中,可以通过HttpServletRequest对象获取上传的文件,并以合适的方式保存到服务器上,例如保存到本地文件系统或将其存储到数据库中。 2. 图片下载: 为了实现图片下载功能,需要创建一个用于处理下载请求的Controller方法。在这个方法中,可以根据请求参数获取图片的存储路径或ID,并根据这个信息获取图片的数据。然后,可以将图片数据写入HttpServletResponse对象的输出流中,从而实现将图片发送给客户端进行下载的功能。 需要注意的是,在处理图片上传和下载的过程中,可能需要对上传的文件大小进行限制,并进行一些安全性的校验,以防止恶意文件上传或下载。 总结起来,Spring MVC可以通过配置MultipartResolver实现图片的上传功能,并通过Controller方法处理上传和下载请求,将图片保存或发送给客户端。通过这些步骤的实现,可以实现方便可靠的图片上传和下载功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桀骜浮沉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值