文件上传实例

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;

@Slf4j
public class FileUpload {

public static FileUploadResult upload(String filePath, MultipartFile file) throws Exception{
FileUploadResult fileUploadResult;
if(StringUtils.isBlank(filePath)){
log.error(“文件路径不存在”);
throw new Exception(“文件路径不存在”);
}
Path path=Paths.get(filePath);
if(!Files.exists(path)) Files.createDirectories(path);
if(Objects.isNull(file)||file.getSize()==0){
log.error(“文件不存在或文件大小为0”);
throw new Exception(“文件不存在或文件大小为0”);
}
String originalFileName=file.getOriginalFilename();
String fileType = StringUtils.substringAfterLast(originalFileName, “.”);
if(StringUtils.isBlank(fileType)){
log.error(“上传的文件没有类型属性”);
throw new Exception(“上传的文件没有类型属性”);
}
String fileName = UUID.randomUUID()+ “.” + fileType;
path = Paths.get(filePath+ Objects.requireNonNull(fileName));
Files.write(path, file.getBytes());
//file.transferTo(new File(filePath+fileName));
fileUploadResult=new FileUploadResult()
.setFileName(fileName).setOriginalFileName(originalFileName)
.setFilePath(path.toString()).setFileType(fileType).setFileActualType(fileType);
return fileUploadResult;
}
public static List uploads(String filePath,MultipartFile[] files) throws Exception{
if(files.length ==0) return Collections.emptyList();
List fileUploadResultList=new ArrayList<>(files.length);
for(MultipartFile file :files) {
FileUploadResult fileUploadResult=upload(filePath,file);
if(Objects.nonNull(fileUploadResult)) fileUploadResultList.add(fileUploadResult);
}
return fileUploadResultList;
}

@Data
@Accessors(chain = true)
public static class FileUploadResult{
private String filePath; //文件路径
private String originalFileName; //文件原始名称
private String fileName; //文件名称
private String fileType; //文件类型
private String fileActualType; //实际类型
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值