package com.travel.admin.controller;
import com.travel.common.util.ResResult;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @description: 文件上传
*/
@Controller
public class FileController {
@Value("${file.upload.path}")
private String uploadFilePath ;
@Value("${file.upload.spotsFmPath}")
private String uploadSpotsImgFilePath;
@Value("${file.upload.headImgPath}")
private String headImgPath;
@PostMapping(value="/user/file/uploadFile")
@ResponseBody
public ResResult<Map<String, Object>> upload(HttpServletRequest req, @RequestParam("file") MultipartFile file){
try {
Map<String, Object> resultMap = new HashMap();
if(file.isEmpty()){
resultMap.put("message","文件为空");
return new ResResult<Map<String, Object>>(ResResult.CodeStatus.FAIL, "上传失败", resultMap);
}
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String uuidString = UUID.randomUUID().toString();
String newFileName= uuidString + suffixName;
String uploadPath = headImgPath;
File path = new File(uploadPath);
if (!path.exists()) path.mkdirs();
File savefile = new File(path,newFileName);
if (!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();
file.transferTo(savefile);
resultMap.put("fileUrl", newFileName);
return new ResResult<Map<String, Object>>(ResResult.CodeStatus.OK, "上传成功", resultMap);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@RequestMapping(value = "/user/showimage")
public String showImage(@RequestBody Map mp,HttpServletRequest request, HttpServletResponse response)
throws Exception {
String image_name = (String)mp.get("image_name");
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
response.setHeader("Pragma", "no-cache");
//response.setContentType("image/jpeg");
response.setContentType("application/octet-stream;charset=UTF-8");
//设置Content-Disposition头 以附件形式解析
response.addHeader("Content-Disposition", "attachment;filename=" + image_name);
// 获得的系统的根目录
File fileParent = new File(File.separator);
// 获得/usr/CBeann目录
System.out.println("读取头像:"+image_name);
File file = null ;
String os = System.getProperty("os.name");
ServletOutputStream out = response.getOutputStream();
if(image_name!=null){
try {
String uploadPath = headImgPath;
if (os.toLowerCase().startsWith("win")) { //如果是Windows系统
file = new File(uploadPath +"\\"+ image_name);
} else { //linux 和mac
file = new File(fileParent, uploadPath.substring(1) +"/"+ image_name);
}
if(file.exists()) {
IOUtils.copy(new FileInputStream(file), out);
}
out.flush();
} finally {
out.close();
}
}
return null;
}
@PostMapping(value="/spots/file/uploadFile")
@ResponseBody
public ResResult<Map<String, Object>> uploadSpotsFmUrl(HttpServletRequest req, @RequestParam("file") MultipartFile file){
try {
Map<String, Object> resultMap = new HashMap();
if(file.isEmpty()){
resultMap.put("message","文件为空");
return new ResResult<Map<String, Object>>(ResResult.CodeStatus.FAIL, "上传失败", resultMap);
}
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String uuidString = UUID.randomUUID().toString();
String newFileName= uuidString + suffixName;
String uploadPath = uploadSpotsImgFilePath;
File path = new File(uploadPath);
if (!path.exists()) path.mkdirs();
File savefile = new File(path,newFileName);
if (!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();
file.transferTo(savefile);
resultMap.put("fileUrl", newFileName);
return new ResResult<Map<String, Object>>(ResResult.CodeStatus.OK, "上传成功", resultMap);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@PostMapping(value="/notes/file/uploadFile")
@ResponseBody
public ResResult<Map<String, Object>> uploadNotesFmUrl(HttpServletRequest req, @RequestParam("file") MultipartFile file){
try {
Map<String, Object> resultMap = new HashMap();
if(file.isEmpty()){
resultMap.put("message","文件为空");
return new ResResult<Map<String, Object>>(ResResult.CodeStatus.FAIL, "上传失败", resultMap);
}
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String uuidString = UUID.randomUUID().toString();
String newFileName= uuidString + suffixName;
String uploadPath = uploadFilePath+"/notes";
File path = new File(uploadPath);
if (!path.exists()) path.mkdirs();
File savefile = new File(path,newFileName);
if (!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();
file.transferTo(savefile);
resultMap.put("fileUrl", newFileName);
return new ResResult<Map<String, Object>>(ResResult.CodeStatus.OK, "上传成功", resultMap);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
《毕业设计&代码复用》--本人毕业设计,凤凰旅游网,使用SpringBoot+Vue前后端分离.zip
共716个文件
java:228个
jpg:118个
class:115个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 57 浏览量
2024-04-10
14:26:40
上传
评论
收藏 38.91MB ZIP 举报
温馨提示
本人十余年JAVA架构设计经验,擅长JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA系统性的技术提升的同学可与我联系,交个朋友哦~ 本人十余年JAVA架构设计经验,擅长JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA系统性的技术提升的同学可与我联系,交个朋友哦~ 本人十余年JAVA架构设计经验,擅长JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA系统性的技术提升的同学可与我联系,交个朋友哦~
资源推荐
资源详情
资源评论
收起资源包目录
《毕业设计&代码复用》--本人毕业设计,凤凰旅游网,使用SpringBoot+Vue前后端分离.zip (716个子文件)
.babelrc 230B
Order.class 13KB
Spots.class 11KB
SysMenu.class 11KB
WebSecurityConfig.class 8KB
Notes.class 8KB
JWTLoginFilter.class 8KB
FileController.class 7KB
Comments.class 7KB
SysUser.class 7KB
OrderServiceImpl.class 6KB
Custorm.class 6KB
SysRole.class 6KB
JWTAuthenticationFilter.class 6KB
UserController.class 5KB
CommentsServiceImpl.class 5KB
PageList.class 5KB
VerificationImgeService.class 5KB
IPUtils.class 5KB
CustormFrontController.class 5KB
SysRoleServiceImpl.class 4KB
SpotsQuery.class 4KB
SysUserServiceImpl.class 4KB
ResResult.class 4KB
RestTemplateUtil.class 4KB
NotesServiceImpl.class 4KB
RoleController.class 3KB
JwtHelper.class 3KB
LoginUser.class 3KB
MenuController.class 3KB
SpotsServiceImpl.class 3KB
HotelController.class 3KB
OrderFrontController.class 3KB
SpotsController.class 3KB
CommonController.class 3KB
OrderDetail.class 3KB
CustormServiceImpl.class 3KB
SysMenuServiceImpl.class 3KB
CommentsFrontController.class 3KB
UserAuthenticationFilter.class 3KB
MyAuthenticationProvider.class 3KB
BaseQuery.class 3KB
NotesFrontController.class 3KB
AjaxResponseBody.class 3KB
Hotel.class 2KB
AuthSuccessHandler.class 2KB
UserQuery.class 2KB
HotelServiceImpl.class 2KB
CustormQuery.class 2KB
CommentsController.class 2KB
City.class 2KB
AuthUtils.class 2KB
RedisKeyExpirationListener.class 2KB
AuthFailureHandler.class 2KB
SpotsFrontController.class 2KB
SenderService.class 2KB
HotelQuery.class 2KB
RestAuthAccessDeniedHandler.class 2KB
NotesQuery.class 2KB
RedisService.class 2KB
PriceArea.class 2KB
Theme.class 2KB
Level.class 2KB
CommentsQuery.class 2KB
MyLogoutSuccessHandler.class 2KB
OrderMapper.class 2KB
ApplicationUtil.class 2KB
MyPicConfig.class 2KB
RedisListenerConfig.class 2KB
NotesController.class 2KB
SecurityUser.class 2KB
CustormController.class 2KB
OrderController.class 2KB
CustomerDetailService.class 2KB
HotelFrontController.class 2KB
OrderQuery.class 1KB
CommentsMapper.class 1KB
CustormMapper.class 1KB
UserSecurity.class 1KB
GlobalCorsConfig.class 1KB
SpotsMapper.class 1KB
HotelMapper.class 1KB
NotesMapper.class 1KB
TravelServerApp.class 1KB
CommonUtils.class 1KB
UserMapper.class 1KB
PriceServiceImpl.class 1018B
ThemeServiceImpl.class 1010B
LevelServiceImpl.class 1010B
CityServiceImpl.class 1002B
OrderDetailMapper.class 938B
RoleQuery.class 870B
ResResult$CodeStatus.class 826B
ICommentsService.class 820B
ISysUserService.class 819B
RoleMapper.class 809B
IOrderService.class 764B
GrantedAuthorityImpl.class 732B
IHotelService.class 657B
BaseException.class 613B
共 716 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
季风泯灭的季节
- 粉丝: 601
- 资源: 2920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Typescript的兔子饭店经营类游戏源码设计免费送cocoscreator
- 基于Java的web快速开发数据权限管理脚手架wonder-server设计源码
- 基于Apache Log4cxx的C++日志库设计源码
- 基于Vue3的likeadmin免费任意商用管理后台设计源码
- 基于JavaScript的Chrome扩展WeNote分享插件设计源码
- 基于C++的中泰EM9108S动态库开发示例源码
- gxlx2-p291-1g.dts和gxlx2-p291-1g.dtb
- STM32WBxx Keil芯片包
- 基于CNN+Bi-LSTM+Attention 的自动对对联系统
- 基于Java的IndexBar Android字母索引栏设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功