springmvc_上传图片以及显示图片到页面

首先我使用的开发工具是IntelliJ idea,今天想做一个上传头像以及显示头像的简单功能·,也在网上查询了很多资料,真的看得头大,最后还是自己鼓捣出来了,明明很简单的一个功能,先看看效果吧。
在这里插入图片描述
在这里插入图片描述

需要注意的地方

1.记住要在wepapp文件目录下创建你文件上传的目录。
2.需要在你创建的目录下随便生成任意格式的文件,如hello.txt,若不创建可能上传不成功(没问题最好)
3.上传的图片不会在webapp目录下你创建的目录下,而是在生成的target目录下,注意查看
4.若需要存储图片到mysql中,只需要存储文件名就行了

首先springmvc.xml添加基本配置

<!--注册multipartResolver,由DispatcherServlet来负责调用-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--设置字符编码防止文件名乱码-->
        <property name="defaultEncoding" value="utf-8"/>
        <!--设置单个上传文件的大小,单位是字节b-->
        <property name="maxUploadSizePerFile" value="1048576"/>
    </bean>

UploadController.java

@Controller
public class UploadController {

    @RequestMapping("/upload.do")
    public ModelAndView upload(MultipartFile photo, HttpSession session)throws  Exception{
        ModelAndView mv = new ModelAndView();
        //判断用户是否上传了文件
        if(!photo.isEmpty()){
            //文件上传的地址
            String realPath = session.getServletContext().getRealPath("/upload");
            //获取文件的名称

            final String fileName = photo.getOriginalFilename();
            //限制文件上传的类型
             String contentType = photo.getContentType();
            if("image/jpeg".equals(photo.getContentType())){
                File file = new File(realPath,fileName);
                //完成文件的上传
                photo.transferTo(file);
                //System.out.println(path);
                //System.out.println(fileName);

                mv.addObject("filename",fileName);
            } else {
                mv.addObject("msg","请选择jpg的文件格式进行上传");
                mv.addObject("type",contentType);
                mv.setViewName("fail");
                return mv;
         }
   		 } else {
            mv.addObject("msg","请选择jpg的文件格式进行上传哦");
            mv.setViewName("fail");
            return mv;
        }
        //跳转到成功页面
        mv.setViewName("upload_success");

        return mv;

    }

upload.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/upload.do">

    图片1:&nbsp;&nbsp;<input type="file" name="photo"><br>

    <input type="submit" value="上传">
</form>
</body>
</html>

upload_sucess.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h2>上传成功了</h2>
    <img src="../upload/${filename}">
<br>
</body>
</html>
发布了60 篇原创文章 · 获赞 10 · 访问量 9195

猜你喜欢

转载自blog.csdn.net/chaseqrr/article/details/104126054