SpringBoot入门十九,简单文件上传

项目基本配置参考SpringBoot入门一,使用myEclipse新建一个SpringBoot项目,使用myEclipse新建一个SpringBoot项目即可。现在来给项目添加一个MyBatis支持,添加方式非常简单,仅需两步即可,具体内容如下:

1. pom.xml添加以下配置信息

<!-- 文件上传配置开始 -->
<!-- 9.引入commons-io依赖 -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

<!-- 10.引入commons-fileupload依赖 -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>
<!-- 文件上传配置结束 -->

2. 配置文件中添加以下配置信息

# ----------------文件传输---------------
## 单个数据的大小
spring.servlet.multipart.max-file-size:200MB
## 总数据的大小
spring.servlet.multipart.max-request-size:500MB

3. 编写文件上传工具类

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

public class ToolUpLoad {
    /**
     * @描述:上传文件到临时目录
     *
     * @param file 上传的文件
     * @param tempPath 上传文件存放路径
     * @return
     */
    public static Map<String, Object> fileUpload(MultipartFile file, String tempPath) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        if (null == file) {
            resultMap.put("result", false);
            resultMap.put("msg", "获取上传文件失败,请检查file上传组件的名称是否正确");
        } else if (file.isEmpty()) {
            resultMap.put("result", false);
            resultMap.put("msg", "没有选择文件");
        } else {
            File fileDir = new File(tempPath);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
            String filename = file.getOriginalFilename();
            filename = tempPath + DateUtil.getNowDateString("YYYYMMddHHmmss") + "_" + filename;
            File dest = new File(filename);
            //保存文件
            try {
                file.transferTo(dest);
                resultMap.put("result", true);
                resultMap.put("msg", "上传成功");
                resultMap.put("filePath", "filename");
            } catch (IOException e) {
                e.printStackTrace();
                resultMap.put("result", false);
                resultMap.put("msg", "文件上传发生异常");
            }
        }
        return resultMap;
    }
}

4. 文件上传

方式一:

请求页面

<form action="xxx/upload" method="post" enctype="multipart/form-data" name="form1" id="form1">
    文件名:<input type="file" name="file" id="file" />
  <input type="submit" name="button" id="button" value="提交" />
</form>

Controller

/**
 * @描述:文件上传
 * 请求页面file组件的name必须为"file"才可以获取到信息,否则为null
 * @param file
 * @return
 */
@RequestMapping("upload")
@ResponseBody
public String upload(MultipartFile file){
    // 文件上传
    Map<String, Object> resultMap = ToolUpLoad.fileUpload(file);
    return JSONObject.toJSONString(resultMap)
}

方式二:

请求页面

<form action="xxx/upload" method="post" enctype="multipart/form-data" name="form1" id="form1">
    文件名:<input type="file" name="bgImg" id="bgImg" />
  <input type="submit" name="button" id="button" value="提交" />
</form>

Controller

/**
 * @描述:文件上传
 * 请求页面的file组件的name为需要和接收参数名称一致
 * @param file
 * @return
 */
@RequestMapping("uploadTwo")
@ResponseBody
    public String uploadTwo(@RequestParam("bgImg") MultipartFile file) {
    // 文件上传
    Map<String, Object> resultMap = ToolUpLoad.fileUpload(file);
    return JSONObject.toJSONString(resultMap)
}

原文地址:https://blog.51cto.com/1197822/2451819

时间: 2024-10-31 13:52:36

SpringBoot入门十九,简单文件上传的相关文章

Django(十九)文件上传:图片上传(后台上传、自定义上传)、

一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings.py 因为图片也属于静态文件,所以保存到static目录下. MEDIA_ROOT=os.path.join(BASE_DIR,"static/media") 2)在static目录下创建media目录,再创建应用名称的目录,此例为app1 F:\Test\django-demo\pro

salesforce 零基础学习(四十二)简单文件上传下载

项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文件上传到Document对象中. 一.文件上传功能 apex代码 1 public with sharing class FileUploadUsedTransientController { 2 3 public transient Blob fileUploadBody{get;set;} 4

Web---文件上传-用apache的工具处理、打散目录、简单文件上传进度

我们需要先准备好2个apache的类: 上一个博客文章只讲了最简单的入门,现在来开始慢慢加深. 先过渡一下:只上传一个file项 index.jsp: <h2>用apache的工具处理文件上传</h2> <!-- 先过渡一下:只上传一个file项 --> <form action="<%= request.getContextPath() %>/upload" method="post" enctype=&quo

springBoot(3)---目录结构,文件上传

目录结构,文件上传 一.目录结构 1.目录讲解 src/main/java:存放代码      src/main/resources                   static: 存放静态文件,比如 css.js.image, (访问方式 http://localhost:8080/js/main.js)                   templates:存放静态页面jsp,html,tpl                   config:存放配置文件,application.pr

struts2实现简单文件上传

struts2 在内部已经帮我们做了很多封装的工作,我们只需要简单的写一些配置即可. 1 表单页面 <form action="${pageContext.request.contextPath }/fileupload" method="post" enctype="multipart/form-data"> <input type="file" name="filesrc" >&

Node.js入门教程——如何实现文件上传功能

作者:zhanhailiang 日期:2014-11-16 本文将介绍如何使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/nodejs-upload-image-demo]# npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to gu

[转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例

原文地址:http://www.stepday.com/topic/?459 作文一个ExtJs的入门汉子,学习起来的确是比较费劲的事情,不过如今在这样一个网络资源如此丰富的时代,依然不是那么难了的.基本上都是Copy过来加以部分改造即可实现自己想要的功能,加之如今的第三方开发者也大发慈悲地写出了API的帮助文档以及示例文档.关于ExtJs内的文件上传,将从以下几个方面进行展开讲解: 一.ExtJs文件上传版面的布局以及配置 因为ExtJs的文件上传组件filefield是基于form表单提交数

php简单文件上传类

<?php header("Content-Type:text/html; charset=utf-8"); if($_POST['submit']){ $upfiles = new Upload(); $upfiles->upload_file(); } class Upload{ /*作者:mckee 来自:www.phpddt.com*/ public $upload_name; //上传文件名 public $upload_tmp_name; //上传临时文件名 p

2017/2/12:springMVC的简单文件上传跟拦截器

1.写文件上传的界面jsp代码如下重点为文件上传标签的类型 2.写登录成功跟失败的界面:成功自己写 3.写springMVC的文件上传的controller的方法 4.最后一步配置spring-servlet.xml一般是开始就配置 5.贴出整个demo的模型 切记:在springMVC中文件上传必须要用CommonsMultipartFile类来解析文件