SpringBoot文件上传下载案例

本文介绍了如何在SpringBoot项目中实现文件上传和下载。首先新建SpringBoot项目,添加相关依赖,如Spring Web、Lombok、Thymeleaf、MyBatis和MySQL。接着创建数据库表,设置独立的Tomcat服务器作为文件存储。最后编写上传和下载的具体逻辑,包括前端页面、控制器、Mapper、Service等,并展示了应用配置和前端交互。
摘要由CSDN通过智能技术生成

第一步:新建SpringBoot项目

新建项目,这里打包方式选Jar还是War都无所谓
新建项目图一

这里加入以下依赖:

  • Spring Web:我们是个Web项目当然要加入这个
  • Lombok:加入Lombok是为了写实体类(和数据库一一对应的pojo类)时,可以不用自己写set和get方法
  • Thymeleaf:是为了之后更方便进行前端页面的制作
  • MyBatis:用Mybaits连接数据库
  • MySql:使用Mysql数据库的驱动类

所需要的依赖
因为使用了Lombok,所以要在设置里开启注解处理器
开启注解处理器
导入跨服务器依赖
往项目里的pom.xml的dependencys标签里加入下面代码(加完之后记得加载Maven变更,idea快捷键ctrl+shift+o)

<dependency>
  <groupId>com.sun.jersey</groupId>
  <artifactId>jersey-client</artifactId>
  <version>1.19.4</version>
</dependency>

第二步:新建数据库表

连接数据库的账号密码都是root,数据库名字叫novel,表名叫user
新建数据库user表

第三步:单独解压一个tomcat作为文件存储服务器

我新解压了一个tomcat,文件夹名字叫tomcat-9.0.64
解压tomcat
打开到webapps文件夹,新建upload目录,等会文件往这里面存储。
新建upload目录
然后找到conf目录下的server.xml文件
找到server.xml
打开找到8005改为8006
改8005为8006
连接器端口号从8080改为8090
从8080改为8090
接下来打开同级目录下的web.xml
加上配置信息,这样才可以写入
web.xml
之后找到bin目录下的startup.bat,启动tomcat,查看能否启动,然后先不管。
可能启动tomcat它会一闪而过,这个问题是因为没有配置环境变量path。如果没这个问题可以跳到第三步。
在环境变量里一定要配置JAVA_HOME C:\Program Files\Java\jdk1.8.0_161(自己安装java的路径,每个人不一样)
部分电脑需要配置CATALINA_HOME D:///apache-tomcat-9.0.41(tomcat路径)
我的环境变量
至于开始运行后控制台乱码控制台产生乱码的问题,是因为在Tomcat在输出日志中使用的是UTF-8编码,而我们中文的Windows操作系统使用的是GBK编码。由于编码格式不统一,所以出现了乱码。

解决方式:
修改conf目录中的logging.properties文件重新指定的编码方式。如果还是不行,那么 就删除该行即可

java.util.logging.ConsoleHandler.encoding   = GBK

第四步:写具体逻辑

新建一个静态页面作为上传信息页面
新建regist页面
前端注册页面详细代码,用来获取信息和上传头像

<html>
<head>
  <meta charset="UTF-8">
  <title>注册页面</title>
  <style>
    .progress {
     
      width: 200px;
      height: 10px;
      border: 1px solid #ccc;
      border-radius: 10px;
      margin: 10px 0px;
      overflow: hidden;
    }
    /* 初始状态设置进度条宽度为0px */
    .progress > div {
     
      width: 0px;
      height: 100%;
      background-color: yellowgreen;
      transition: all .3s ease;
    }
  </style>
  <script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
  <script type="text/javascript">
    $(function(){
     
      $("#uploadFile").click(function(){
     
        // 获取要上传的文件
        var photoFile =$("#photo")[0].files[0]
        if(photoFile==undefined){
     
          alert("您还未选中文件")
          return;
        }
        // 将文件装入FormData对象
        var formData =new FormData();
        formData.append("headPhoto",photoFile)
        // ajax向后台发送文件
        $.ajax({
     
          //提交方式
          type:"post",
          //提交内容
          data:formData,
          //提交地址
          url:"user/upload",
          //将processData属性的值设置为false,告诉浏览器发送对象请求数据
          processData:false,
          //将contentType属性的值设置为false,设置请求数据的类型为二进制类型。
          contentType:false,
          success:function(result){
     
            // 接收后台响应的信息
            alert(result.message)
            // 图片回显
            $("#headImg").attr("src",result.newFileName);
            //将文件类型和文件名放入form表单
            $("#photoInput").val(result.newFileName);
            $("#filetypeInput").val(result.filetype);
          },
          xhr: function() {
     
            var xhr = new XMLHttpRequest();
            //使用XMLHttpRequest.upload监听上传过程,注册progress事件,打印回调函数中的event事件
            xhr.upload.addEventListener('progress', function (<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值