SpringBoot文件上传到服务器并用nginx进行代理展示
工具类
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileUtil {
//静态方法:三个参数:文件的二进制,文件路径,文件名
//通过该方法将在指定目录下添加指定文件
public static void fileupload(byte[] file,String filePath,String fileName) throws IOException {
//目标目录
File targetfile = new File(filePath);
if(targetfile.exists()) {
targetfile.mkdirs();
}
//二进制流写入
FileOutputStream out = new FileOutputStream(filePath+fileName);
out.write(file);
out.flush();
out.close();
}
}
web
@PostMapping("/mapUpload")
public Result<String> uploadPhoto(@RequestParam("file") MultipartFile file){
if(!file.isEmpty()) {
// 获取文件名称,包含后缀
String fileName = file.getOriginalFilename();
// 存放在这个路径下:该路径是该工程目录下的static文件****:该文件可能需要自己创建)
// 放在static下的原因是,存放的是静态文件资源,即通过浏览器输入本地服务器地址,加文件名时是可以访问到的
//String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/";
//System.out.println(path);
String path = "/youFolder/images/";
try {
// 该方法是对文件写入的封装,在util类中,导入该包即可使用,后面会给出方法
Date date = new Date();
fileName = date.getTime()+""+date.getSeconds()+"."+fileName.substring(fileName.lastIndexOf(".") + 1);;
com.st.common.utils.FileUtil.fileupload(file.getBytes(), path, fileName);
System.out.println(fileName);
return new Result<String>(Result.CODE_ENUM.SUCCESS.KEY,Result.CODE_ENUM.SUCCESS.VALUE,fileName);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
return null;
}
在服务器上,对youfolder/image
文件夹进行nginx代理
测试
访问http://ip:port/images/15514059688298.jpg