SSM文件按日期文件夹上传

基于Springboot和Mybatis的文件上传与下载 0. 前言 因为太久太久没有碰项目了(上一次还是2021年8月开发个人博客的时候),所以这一次打算从头到尾把整个学习和搭建的过程记录下来。 1. 简介 这是一个基于SpringBoot和Mybatis的企业级文件上传下载的实战项目,没有太多前端和UI的东西。 2. 链接 【编程不良人】基于SpringBoot和Mybatis企业级文件上传下载项目实战 1. 设计 1. 需求 用户登陆,展示用户的所有文件(文件如果是图片则在页面中显示图片) 完成文件的下载和在线打开(在线打开不计入下载次数) 在一张页面中完 阅读详情

1、导入上传需要的jar包

  • commons-fileupload-1.3.3.jar
  • commons-io-2.6.jar

2、创建 index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>上传</title>
</head>
<body>

<h1>上传图片</h1>
<form action="/upload/saveUpload" method="post" enctype="multipart/form-data">
    图片名称:<input type="text" name="name"><br>
    图片:<input type="file" name="multipartFile" multiple="multiple"><br>
    上传者:<input type="text" name="uploader"><br>
    <input type="submit" value="上传">
</form>

</body>
</html>

注意:

  • 1.form表单的 method 属性设置为 post
  • 2.form表单的 enctype 属性设置为 multipart/form-data
  • 3.提供 <input type="file" name="multipartFile">的文件上传输入框

3、在springmvc.xml文件中配置CommonsMultipartResolver文件解析器

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--设置请求编码格式,必须与JSP中的pageEncoding属性一致-->
        <property name="defaultEncoding" value="UTF-8"/>
        <!--设置允许上传文件的最大值(2MB),单位为字节-->
        <property name="maxUploadSize" value="2097152"/>
</bean>

4、编写Controller层实现文件上传

package com.itheima.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.UUID;


@Controller
@RequestMapping("/upload")
public class UploadController {

    /**
     * 文件上传
     *
     * @param multipartFile
     * @param request
     */
    @RequestMapping("/saveUpload")
    public void saveUpload(MultipartFile multipartFile, HttpServletRequest request) {

        // 以当前日期创建一个文件夹,避免单个文件夹中文件过多
        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
        // 截取年月日:2020-11-02
        String substring = timestamp.toString().substring(0, 10);
        // 设置文件上传存放的路径
        String uploadPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload/" + substring);

        System.out.println("获取到的图片上传地址为:" + uploadPath);
        // 获取上传文件名字
        String uploadName = multipartFile.getOriginalFilename();
        System.out.println("原始文件名:" + uploadName);
        // 利用UUID生成新的图片名字,避免原图片被覆盖
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");

        // 截取上传文件的后缀
        String suffix = uploadName.substring(uploadName.lastIndexOf("."));
        // 拼接新的文件名字
        String newUploadName = uuid + suffix;
        System.out.println("新的文件名:" + newUploadName);

        File dir = new File(uploadPath, newUploadName);
        // exists() 测试此抽象路径名表示的文件或目录是否存在。
        // 文件夹不存在则创建文件夹
            if (!dir.getParentFile().exists()) {
                dir.getParentFile().mkdirs();
            }
            // 文件不存在则创建文件
            if (!dir.exists()) {
                dir.createNewFile();
            }
        //MultipartFile自带的解析方法
        try {
            multipartFile.transferTo(dir);
        } catch (IOException e) {
        // 移除文件
            if (dir.exists()) {
                dir.delete();
            }
            e.printStackTrace();
        }

    }

}

运行代码,图片会上传到类路径下的 \WEB-INF\upload 下,会以当前日期创建文件夹存储图片

博客地址:https://www.cnblogs.com/MavenHan/p/13917316.html
STM32C8T6HAL库实战:MAX30102心率血氧检测与OLED多级菜单一体化方案 本文详细介绍了基于STM32C8T6和HAL库的MAX30102心率血氧检测与OLED多级菜单一体化方案。内容涵盖硬件连接、CubeMX工程配置、传感器驱动移植、数据滤波算法、OLED显示驱动以及高效的多级菜单系统设计,旨在提供一个稳定、实用且易于移植的嵌入式健康监测项目参考。 阅读详情

相关推荐

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5292

ssm框架实现文件上传(上传头像)

ssm框架实现文件上传(上传头像)

m0_54435916的博客 2287

基于STM32和K210的自动驾驶小车设计

自动驾驶技术正在迅速发展,成为了汽车行业和智能交通领域的热点之一。随着科技的发展,STM32和K210这两款芯片为自动驾驶小车提供了优秀的硬件支持。本文我们将学习如何使用STM32和K210打造一个简单的自动驾驶小车。提示:以下是本篇文章正文内容,下面案例可供参考通过这篇文章,掌握了如何使用STM32和K210构建一个简单的自动驾驶小车。通过了解基本的电路设计,并编写了STM32和K210的代码。通过这个例子,可以更好地理解如何在嵌入式系统中使用STM32和K210,以及如何实现自动驾驶小车的简单功能。

Kyle_Chan_zMH的博客 2215

SSM实现文件上传

SSM实现文件上传

mwx523037520036的博客 478

ADS高级技巧:用DAC控件实现多变量参数扫描(以S参数和阻抗匹配为例)

本文深入解析了ADS软件中DAC控件的高级应用,指导用户如何利用其实现多变量参数扫描。通过构建支持多变量的MDF文件,并将其与原理图变量动态映射,可以高效完成如S参数和阻抗匹配等复杂场景的联合仿真与可视化分析,显著提升射频电路设计的效率和深度。

3a9bq4r8t2y的博客 253

推荐系统(一)概述

在互联网领域,推荐系统(Recommendation Systems)的应用非常广泛。在音视频方面,如抖音、快手、哔哩等;在电商平台方面,如京东、淘宝、拼多多等。推荐有助于帮助用户快速发现潜在感兴趣的内容(音视频、商品、新闻等信息流),从而提升用户体验,同时有助于提升商业效率。从本文开始,笔者将结合自身在信息流推荐领域的经验,通过系列文章对推荐系统展开介绍。

Jin_Kwok的博客 6084

ssm框架中怎么实现文件上传功能

在 SSM (Spring + SpringMVC + MyBatis) 框架中实现文件上传功能主要分为以下步骤: 在前端页面中创建一个文件上传的表单,该表单的 enctype 属性应该设置为 "multipart/form-data"。 在 SpringMVC 的 Controller 中添加文件上传的处理方法,使用 @RequestParam 注解获取上传的文件。 在处理方法中,使用 C...

weixin_35756637的博客 601

ADS1115 0-10V高精度ADC模块原理图设计,已量产

在水质监测、智能气象站、环境感知等领域,0-10V 电压输出的传感器占据了重要地位。这类传感器输出信号稳定、抗干扰能力强,但对数据采集模块的精度、线性度和易用性提出了严苛要求。本文将深度解析一款专为 0-10V 传感器设计的高精度 ADC 模块,从硬件架构、性能指标到工程化实践,全面呈现其设计思路与核心价值。

不脱发的程序猿 272

ftp上传当天文件的方法_用批处理上传文件到ftp目录下的实现方法

为了快速将项目中开发的补丁程序通过ftp快速上传到linux下,感觉每次用flashFxp等工具麻烦),写了个简单的批处理,与大家分享一下。将以下代码保存为.bat格式的文件,每次将要上传的补丁保存在规定的本地目录中,只要双击执行此文件就能上传到你的指定目录上。说明:192.168.1.1 ftp ip 地址21 端口username 用户名password 密码temp.txt 保存ftp信息的...

weixin_39887577的博客 144

yolov26改进 | 检测头篇 | 利用渐近特征金字塔网络AFPN改进yolov26检测头融合P2网络结构(让小目标无所遁形,全网独家首发)

本文介绍一种基于AFPN渐近特征金字塔网络改进的YOLOv26四检测头Detect_FPN。AFPN通过逐级融合底层细节、中层结构与高层语义特征,缩小不同尺度特征之间的语义差距,减少直接融合带来的信息冲突,使检测头获得更稳定、更充分的多尺度表达。本文进一步增加高分辨率小目标检测分支,强化对微小目标、密集目标和复杂背景目标的感知能力,适合工业缺陷、遥感及无人机等场景。文中将展示基础模型与改进模型的训练对比结果,并提供完整代码、配置文件、模块注册方法及Codex修改思路,方便直接复现和二次创新。

Snu77的博客 367

Android 13 SPRD 源码默认打开多用户实际无效果问题修复

【代码】Android 13 SPRD 源码默认打开多用户实际无效果问题修复。

m0_60898338的博客 449

ssm上传文件获取路径_SSM实现文件上传

1、导入上传需要的jar包commons-fileupload-1.3.3.jarcommons-io-2.6.jar2、创建 index.jsp上传上传图片图片名称:图片:上传者:注意:1.form表单的 method 属性设置为 post2.form表单的 enctype 属性设置为 multipart/form-data3.提供 的文件上传输入框3、在springmvc.xml文件中配置Co...

weixin_39962889的博客 773

Debezium报错处理系列之第112篇:Cannot replicate because the master purged required binary logs. Replicate the

Debezium报错处理系列之第112篇:Cannot replicate because the master purged required binary logs.

zhengzaifeidelushang的博客 724

单多文件上传

](这里写自定义目录标题) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样

weixin_60409485的博客 1059

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ssm实现上传文件

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。 以一个添加用户的案例介绍(主要是将上传文件)。 一、需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以)。 文件名:以 博客名+日期的年月日时分秒毫秒形式命名 如 言曌博客2017082516403213.png 路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文件夹 如

1150

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

旅游项目(三)ssm实现文件上传下载实操

用户通过浏览器以multipart格式上传到服务器后,业务层代码: public boolean uploadObject(String title, MultipartFile mFile) throws IOException { //1.判断文件合法 if(StringUtils.isEmpty(title)) throw new InputInvalidException("标题

SamHan的博客 1390

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java ssm如何上传图片_ssm整合-图片上传功能(转)

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。以一个添加用户的案例介绍(主要是将上传文件)。一、需求介绍我们要实现添加用户的时候上传图片(其实任何文件都可以)。文件名:以 博客名+日期的年月日时分秒毫秒形式命名如 言曌博客2017082516403213.png路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文件夹如 uploads/2017/...

weixin_33376592的博客 650

ssm 文件上载功能

导入包 import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.u...

hahaowenGG的博客 231

ssm整合-图片上传功能(转)

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。 以一个添加用户的案例介绍(主要是将上传文件)。 一、需求介绍 我们要实现添加用户的时候上传图片(其实任何文件都可以)。 文件名:以 博客名+日期的年月日时分秒毫秒形式命名 如 言曌博客2017082516403213.png 路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文...

azjnf1847的博客 171

java简单图片上传

ssm普通项目 //上传图片 String name = UUID.randomUUID().toString(); String newFileName = name + ".jpg"; File newFile = new File(request.getServletContext().getRealPath("/image"), newFileName); newFile.getParentFile().mkdirs();

weixin_2630663675的博客 352

SSM单文件上传

前端 &lt;form action="/file/fileupload" method="post" enctype="multipart/form-data"&gt; &lt;label&gt;文件上传&lt;/label&gt; &lt;input type="file" name="file"&gt; &amp

beidaol的专栏 222

ssm+maven 实现文件上传

文件上传依赖 &lt;!--文件上传依赖的版本号--&gt; &lt;commons-fileupload.version&gt;1.3.1&lt;/commons-fileupload.version&gt; &lt;commons-io.version&gt;2.4&lt;/commons-io.version&gt; ...

zdj18166896501的博客 668

使用SSM框架实现文件上传

前端jsp代码 <input type="file" name="file" id="input_file" style="display:inline;" required="required"> ( 推荐尺寸: 500 * 500 ) 后端代码 package com.hopu.controller; import com.github.pagehelper.PageInfo; import com.hopu.bean.Admins; import com.hopu.bean.Goods

Vue1024的博客 284

SSM SpringMVC上传多个图片

导入包: commons-fileupload commons-fileupload 1.3.3 Spring.xml:配置MultipartResolver:用于处理表单中的file //请求的编码格式 //value可以随便打多大 //文件最大大小(字节) 1024102450=50M &amp;amp;amp;amp;amp;amp;lt;/bean&amp;amp;amp;amp;amp;amp;gt; jsp页面:&amp;

梦奇 1702

SSM—09—SSM 框架下图片存储的深度解析与实践:三种方式全掌握——文件、二进制、Base64

在当今的 Web 应用开发中,图片的存储与展示是一个非常常见的功能需求。无论是用户头像、商品图片还是各种多媒体素材,图片都扮演着重要的角色。而对于基于 SSM 框架的项目来说,如何高效、合理地存储图片是一个值得深入探讨的问题。本文将带你走进 SSM 框架下的图片存储世界,深入剖析三种常见的图片存储方式,让你在实际项目开发中能够根据具体需求选择最合适的存储方案,提升项目的性能和用户体验。以图片文件形式存入 web 容器的方式简单直观,适合图片数量较少、对访问速度要求较高的场景。

2201_75525624的博客 1189

微人事第四天:单文件上传

在ssm项目中我们如果要文件上传需要在xml文件中配置很多东西,使用springboot可以帮助我们减少很多配置。 1.首先还是创建springboot工程 引入web 2.编写提价界面index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> ...

qq_41998938的博客 281
下一篇: SSM使用UEditor富文本编辑器
hanlin-hl
博客等级 码龄8年 3粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

hanlin-hl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值