1. 实现功能
上传文件到本地,每次上传都会创建一个自定义名称的文件夹,把创建的文件放在该文件夹下
上传文件到本地, 每次上传都会在一个文件夹下
如果放在(服务器下)tomcat目录下,返回自定义路径可以实现网络访问。
import cn.hutool.core.util.IdUtil;
import org.springframework.util.StringUtils;
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.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
/**
* @author lenovo
*/
@RestController
@RequestMapping("/file")
public class FileUpController {
/**
* 上传文件到本地
* 每次上传都会创建一个folder的文件夹,把创建的文件放在该文件夹下
* @param file 文件(可以是图片,文档等)
* @param folder 文件夹名称
* @return
* @throws IOException
*/
@PostMapping("/preUpLoad")
public String preUpLoad(@RequestParam("file") MultipartFile file,String folder) throws IOException {
//存放路径
String path = "G:/img";
System.out.println("文件夹名称"+folder);
if (StringUtils.isEmpty(file)) {
throw new IOException("上传的文件不能为空!");
}
if (StringUtils.isEmpty(folder)) {
throw new IOException("文件夹不能为空!");
}
path = path+"/"+folder+"/";
File file1=new File(path);
//如果文件夹不存在
if(!file1.exists()) {
//创建文件夹
file1.mkdir();
}
String fileName=null;
//获取带后缀文件
String myFileName = file.getOriginalFilename();
//获取后缀
String suffix =getExtensionName(myFileName);
System.out.println("获取不带后缀文件"+myFileName+"-获取后缀"+suffix);
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (!myFileName.trim().equals("")) {
// 重命名上传后的文件名
fileName = IdUtil.getSnowflake(0, 0).nextId()+"."+suffix;
// 定义上传路径
String fpath = path + fileName;
File localFile = new File(fpath);
file.transferTo(localFile);
System.out.println("上传成功----名称"+fileName);
}
return path+fileName;
}
/**
* 上传文件到本地
* 每次上传都会在一个文件夹下
* @param file 文件(可以是图片,文档等)
* @return
* @throws IOException
*/
@PostMapping("/preUpLoad1")
public String preUpLoad1(@RequestParam("file") MultipartFile file) throws IOException {
//存放路径
String path = "G:/img";
if (StringUtils.isEmpty(file)) {
throw new IOException("上传的文件不能为空!");
}
path = path+"/";
File file1=new File(path);
//如果文件夹不存在
if(!file1.exists()) {
//创建文件夹
file1.mkdir();
}
String fileName=null;
//获取不带后缀文件夹
String myFileName = file.getOriginalFilename();
// 获取后缀
String suffix = getExtensionName(myFileName);
System.out.println("获取不带后缀文件"+myFileName+"获取后缀"+suffix);
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (!myFileName.trim().equals("")) {
// 重命名上传后的文件名
fileName = IdUtil.getSnowflake(0, 0).nextId()+"."+suffix;
// 定义上传路径
String fpath = path + fileName;
File localFile = new File(fpath);
file.transferTo(localFile);
System.out.println("上传成功----名称"+fileName);
}
return path+"/"+fileName;
}
/**
* 获取文件扩展名
*
*/
public static String getExtensionName(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot >-1) && (dot < (filename.length() - 1))) {
return filename.substring(dot + 1);
}
}
return filename;
}
}