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>
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值