springBoot 上传文件到服务器,头像预览功能
2020-12-13 02:51
阅读:549
YPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
标签:返回 trace height write input fastdfs 地址 http user
sprijngBoot 2.x版本不需要添加依赖包,soringBoot以及集成好了
一: 上传文件 controller接受层
@PostMapping(value = "/fileUpload")
public String fileUpload(@RequestParam(value = "file") MultipartFile file, ModelMap model, HttpServletRequest request) {
if (file.isEmpty()) {
System.out.println("文件为空空");
}
String fileName = updateFile(request, file);
model.put("fileName",fileName);
return "update";
}
/**
*上传到服务器的方法
*/
private String updateFile(HttpServletRequest request,MultipartFile files) {
MultipartFile file = files;
if (!file.isEmpty()){
try {
// 保存的文件路径(如果用的是Tomcat服务器,文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夹中
// )
String filePath = request.getSession().getServletContext()
.getRealPath("/")
+ "upload/" + file.getOriginalFilename();
File saveDir = new File(filePath);
if (!saveDir.getParentFile().exists()){
saveDir.getParentFile().mkdirs();
}
// 转存文件 保存到服务器地址上,路径在filePath
file.transferTo(saveDir);
/**请求图片服务器 返回字符串
* */
//得到图片全名
String originalFilename = file.getOriginalFilename();
int i1 = originalFilename.indexOf(".");
String suffix = "";
if (i1 != 0){
suffix = originalFilename.substring(i1+1);
}else {
suffix = "jpg";
}
// String fileId = fileService.uploadWithGroup(
// FileCopyUtils.copyToByteArray(saveDir), FastDfsGroup.PRI_FILE, suffix);
String absolutePath = saveDir.getAbsolutePath();
String canonicalPath = saveDir.getCanonicalPath();
System.out.println(absolutePath+"---"+canonicalPath);
//absolutePath是文件的绝对路径,下面jsp中,预览头像时,需要回传到getUserLogo 接口中
return absolutePath;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
二: jsp页面
Title
图片:
三:头像预览接口
/**
* 获取头像
* */
@RequestMapping("/getUserLogo")
public void getUserLogo(HttpServletRequest request,
HttpServletResponse response, String path) {
response.setContentType("image/jpeg"); // 设置返回内容格式
File file = new File(path); // 括号里参数为文件图片路径
if (file.exists()) { // 如果文件存在
InputStream in;
try {
in = new FileInputStream(file);
OutputStream os = response.getOutputStream(); // 创建输出流
byte[] b = new byte[1024];
while (in.read(b) != -1) {
os.write(b);
}
in.close();
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
springBoot 上传文件到服务器,头像预览功能
标签:返回 trace height write input fastdfs 地址 http user
原文地址:https://www.cnblogs.com/quzhongren/p/11057809.html
评论
亲,登录后才可以留言!