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

2023-11-07

首先我使用的开发工具是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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springmvc_上传图片以及显示图片到页面 的相关文章

随机推荐

  • 三八节致敬女程序员

    在历史中 日志既可以作为文献资料 又可以作为查案辅证 既可以作为航海记录 又可以作为海难追源 而随着时间的推移 科技的发展 时代逐渐赋予了日志更为广泛的内涵 当人们还在谈论历史日志 航海日志时 计算机时代便已悄然而至 开启了 日志数据 的大
  • Voice Control for ChatGPT 轻松实现使用语音与ChatGPT进行对话。

    缘由 日常生活中 我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的 毕竟相对于文字来说语音就不会显的那么的苍白无力 同时最大的好处就是能解放我们的双手吧 能更快实现两者间的对话 沟通便更高效了 Voice Control for Cha
  • GitHub问题汇总

    问题1 fatal unable to access https github com xxxxx LibreSSL SSL read error 02FFF03C system library func 4095 Operation ti
  • react 重定向Redirect

    如果路径是 跳转到 home
  • 浅谈Java虚拟机工作原理

    网上看了很多写JVM工作原理的大神 也看了些视频 各有各的理解 我整合一下组织自己的语言发表一下理解 首先来一段简单的代码示例 public class Test public static void main String args St
  • 2023年“网络安全”赛项江苏省淮安市选拔赛 任务书

    任务书 一 竞赛时间 共计3小时 二 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 服务器内部信息获取 任务二 网站渗透测试 任务三 Linux系统渗透提权 任务四 Web渗透测试 第二阶段分
  • C#时间格式转换问题(12小时制和24小时制)

    string time Convert ToDateTime date ToString yyyy MM dd HH mm 24小时 string time Convert ToDateTime date ToString yyyy MM
  • @FeignClient服务之间调用Get请求传递对象参数

    使用feign进行服务间调用时 Get请求有多个参数的时候如何使用对象传参呢 第一步 引入pom依赖
  • unity中控制主角的移动和旋转

    在游戏中我们通常要控制玩家的移动和旋转 首先我们说一下移动 移动的本质就是在Update 或LateUpdate 中不断修改物体的position来实现移动 移动的方法有4中 1 transform Translate 第一种方法与直接修改
  • 两列表同时排序,排序后对应元素不变(用到zip打包和解包)

    number是数字 lis是要排的序列 def sort number list number lis 利用 解包方式 将一个排序好的元组 通过元组生成器再转成list list sorted list list zip sorted zi
  • 创造自己的专属免费网盘:Nextcloud

    由于百度网盘速度奇慢无比 而且同步文件夹还需要会员什么的 这对于Nextcloud来说简直就是欺负人啊 所以我们通过搭建一个Nextcloud的私有云 来解决这些问题 目录 简介 快捷安装 配置ssl 启用https 报错 意外处理 一 简
  • less动态样式语言(预处理语言)

    一 使用方法 Less是一门CSS 预处理语言 它扩展了 CSS 语言 增加了变量 Mixin 函数等特性 使 CSS 更易维护和扩展 Less 可以运行在 Node 或浏览器端 1 客户端使用 1 下载less 2 编写项目less文件
  • 红米10A 一键root教程 解锁BL 跳过168小时限制 刷面具root救黑砖刷机 解决无法解锁BL 新版本刷机

    新版本 红米10A 解锁BL 无法秒解锁BL root bootloader 要刷机 线刷救砖 获取Root权限都需要解除bootloader锁 我们称解除刷机限制的这个操作就叫解锁BL 只有解锁BL后 才可以进行刷机 刷Root权限等等一
  • Linux多进程:orphan process——孤儿进程

    孤儿进程orphan process 当父进程比子进程先结束 这样的子进程就成为了孤儿进程 每当出现一个孤儿进程 内核会把孤儿进程的父进程设置为init 托管 init进程会循环wait 孤儿进程结束 然后做剩下的善后 回收资源 因此 孤儿
  • 验证链表是否有环

    思路 声明一个快指针 一个慢指针 快指针一次走两步 慢指针一次走一步 如果快慢两个指针相遇 说明链表有环 至于为什么快慢两个指针相遇就说明链表中有环 这个牵扯到数学证明 这里就不论证了 我们直接用结论 代码实现 初始化的时候 快指针指向 h
  • SSM框架学习(三),SSM整合

    主要整合的主要整合Spring和Mybatis 将Mybatis交由Spring管理 第一步配置datasource
  • 因找不到D3DCompiler_47.dll文件导致游戏软件无法启动问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个D3DComp
  • jdbc中加载oracle驱动程序,在一个Java应用程序中使用多个Oracle JDBC驱动程序?

    我想通过JDBC连接到两个不同的Oracle数据库 一个8 0 5 0 0和一个12c 我确实有两个JDBC驱动程序 它们可以通过简单的 hello world 应用程序分别成功地连接到相应的DB 下面 我将它们都放在一个Java应用程序中
  • 【R语言】实验五 综合应用

    系列文章目录 实验一 R 语言数据结构 数据导入与数据处理 实验二 基本数据处理 实验三 数据可视化 实验四 数据分析 实验五 综合应用 实验数据 实验数据下载 1 systation 数据集 systation csv 中包含的是沈阳地铁
  • springmvc_上传图片以及显示图片到页面

    首先我使用的开发工具是IntelliJ idea 今天想做一个上传头像以及显示头像的简单功能 也在网上查询了很多资料 真的看得头大 最后还是自己鼓捣出来了 明明很简单的一个功能 先看看效果吧 需要注意的地方 1 记住要在wepapp文件目录