程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(1)

文件上传保存在项目工程

发布于2020-11-19 20:54     阅读(917)     评论(0)     点赞(24)     收藏(4)


package com.huilan.controller;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.huilan.utils.UploadFileUtils;
@RestController
public class UploadTest {
	private static final Logger log = LoggerFactory.getLogger(UploadTest.class);
	//@ResponseBody
   // @RequestMapping("/fileupload")
    public Map upload(@RequestParam("file")MultipartFile imgFile,HttpServletRequest request,HttpSession session) throws Exception{
 
		Map msg = new HashMap<>();
        if (imgFile.isEmpty()) {
            // 设置错误状态码
          //  msg.setCode(500);
           // msg.setMsg("上传失败,请选择文件");
            return msg;
        }
 
        // 拿到文件名
        String filename = imgFile.getOriginalFilename();
        String newFileName = UploadFileUtils.getTime(UploadFileUtils.YYYYMMDDHHMMSSSSS)+System.currentTimeMillis()+filename.substring(filename.indexOf("."));
        // 存放上传图片的文件夹
        File fileDir = getImgDirFile();
        // 输出文件夹绝对路径  -- 这里的绝对路径是相当于当前项目的路径而不是“容器”路径
        System.out.println(fileDir.getAbsolutePath());
 
        try {
            // 构建真实的文件路径
            File newFile = new File(fileDir.getAbsolutePath() + File.separator + newFileName);
            System.out.println(newFile.getAbsolutePath());
 
            // 上传图片到 -》 “绝对路径”
            imgFile.transferTo(newFile);
 
          //  msg.setMsg("上传成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return msg;
    }
	
	
    // 项目根路径下的目录  -- SpringBoot static 目录相当于是根路径下(SpringBoot 默认) 
    public final static String IMG_PATH_PREFIX = "templates/static/upload/imgs/";
    
    public static File getImgDirFile() throws Exception{
        // 构建上传文件的存放 "文件夹" 路径
        String fileDirPath = new String("src/main/resources/" + IMG_PATH_PREFIX);
        String filePath =UploadFileUtils.getTime("yyyy-MM-dd");
        String path = fileDirPath+filePath;
		System.out.println(path);
        File fileDir = new File(path);
        if(!fileDir.exists()){
            // 递归生成文件夹
            fileDir.mkdirs();
        }
        return fileDir;
    }
    
    
    
    
    
    
    
    
  ///static/upload/imgs/2020-11-17/202011171802400901605607360090.jpg
    public final static String IMG_PATH = "static/upload/imgs/";
    @ResponseBody
    @RequestMapping("/fileupload")
    public String fileUpload(@RequestParam("file")MultipartFile imgFile,HttpServletRequest request) throws Exception{
    //	Map msg = new HashMap<>();
        if (imgFile.isEmpty()) {
        	 log.info("上传成功!");
            return null;
        }
        // 获取文件名
        String filename = imgFile.getOriginalFilename();
        String newFileName = UploadFileUtils.getTime(UploadFileUtils.YYYYMMDDHHMMSSSSS)+System.currentTimeMillis()+filename.substring(filename.indexOf("."));
        // 存放上传图片的文件夹
        String fileDirPath = new String("src/main/resources/templates/" + IMG_PATH);
        //文件日期
        String filePath =UploadFileUtils.getTime("yyyy-MM-dd");
        String path = fileDirPath+filePath;
        String resultUrl = IMG_PATH+filePath+"/"+newFileName;
		System.out.println(path);
		System.out.println("返回:"+resultUrl);
        File fileDir = new File(path);
        //创建文件
        if(!fileDir.exists()){
            fileDir.mkdirs();
        }
        System.out.println(fileDir.getAbsolutePath());
        try {
            File newFile = new File(fileDir.getAbsolutePath() + File.separator + newFileName);
            System.out.println(newFile.getAbsolutePath());
            imgFile.transferTo(newFile);
            log.info("上传成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return resultUrl;
    }
    
}

原文链接:https://blog.csdn.net/shijinjins/article/details/109751731



所属网站分类: 技术文章 > 博客

作者:java战神

链接:http://www.javaheidong.com/blog/article/962/fecbc044c4c5b3175330/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)