SpringBoot文件上传到服务器并用nginx进行代理展示

版权声明:作者支付宝18696232390喜欢的可以打钱! https://blog.csdn.net/u014131617/article/details/88049906

工具类

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
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014131617/article/details/88049906