SpringBoot实现单文件上传

SpringBoot实现单文件上传功能

架构为springboot+thymeleaf,采用ajax方式提交

1. 页面testFile.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>测试文件上传</title>
	
	<script src="../static/jquery/jquery-2.1.1.min.js" th:src="@{/jquery/jquery-2.1.1.min.js}"></script>
    
    <script type="text/javascript">
    $(function () {
        $("#upload1").click(function () {
            var formData = new FormData();
            formData.append("file", document.getElementById("file").files[0]);   
            $.ajax({
                url: "/file/upload1",
                type: "POST",
                data: formData,
                
                //必须false才会自动加上正确的Content-Type
                contentType: false,
                
                //必须false才会避开jquery对 formdata 的默认处理
                //XMLHttpRequest会对 formdata 进行正确的处理
                processData: false,
                
                success: function (data) {
                    if (data.status == "true") {
                        alert("上传成功!");
                    }
                    if (data.status == "error") {
                        alert(data.msg);
                    }
                },
                error: function () {
                    alert("上传失败!");
                }
            });
        });
    });
    </script>
</head>
<body>
	
    <form method="POST" enctype="multipart/form-data" action="/file/upload1">
    	<fieldset>
        	<legend>单一文件上传实例:</legend>
           	 文件1<input type="file" name="file" id="file"/><br/>
            
            <input type="button" id="upload1" value="上传"/><br/>
        </fieldset>
    </form>

</body>
</html>

2. FileController.java

package com.stormkai.controller;

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

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import lombok.extern.slf4j.Slf4j;

@Controller
@RequestMapping("/file")
@Slf4j
public class FileController {
	
	@GetMapping("/index")
	public String index() {
		return "testFile";
	}
	
	@PostMapping("/upload1")
    @ResponseBody
    public Map<String, Object> upload1(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
        
        log.info("系统路径={}",request.getSession().getServletContext().getRealPath(""));
        String path = "F:\\uploadfile\\";
        if(!new File(path).exists()){
        	new File(path).mkdirs();
		}
        file.transferTo(new File(path + file.getOriginalFilename()));
        Map<String, Object> result = new HashMap<>();
        result.put("status", "true");
        result.put("data", null);
        return result;
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值