1.springboot项目结构如图所示
2.UploadController负责后端接收图片文件并保存到项目的images路径下,那这个相对地址应该怎么写?
写过"templates/images/",和“./main/resources/templates/images/”形式,都不能存储,前端控制台给出的url都是以下这样:
1.springboot项目结构如图所示
2.UploadController负责后端接收图片文件并保存到项目的images路径下,那这个相对地址应该怎么写?
写过"templates/images/",和“./main/resources/templates/images/”形式,都不能存储,前端控制台给出的url都是以下这样:
@ResponseBody
@RequestMapping(path = "/save_photo", method={RequestMethod.POST})
public void addDish(@RequestParam("photos") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception
{
String path = null;// 文件路径
String json = "";
if (file!=null) {// 判断上传的文件是否为空
String type = null;// 文件类型
String fileName = file.getOriginalFilename();// 文件原名称
System.out.println("上传的文件原名称:"+fileName);
// 判断文件类型
type = fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
if (type!=null) {// 判断文件类型是否为空
if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) {
// 项目在容器中实际发布运行的根路径
String realPath = request.getSession().getServletContext().getRealPath("/");
// 自定义的文件名称
String trueFileName = String.valueOf(System.currentTimeMillis()) + "." + type;
// 设置存放图片文件的路径
path = realPath+/*System.getProperty("file.separator")+*/trueFileName;
System.out.println("存放图片文件的路径:"+path);
// 转存文件到指定的路径
file.transferTo(new File(path));
System.out.println("文件成功上传到指定目录下");
}
json = "{\"res\":1}";
}else {
System.out.println("不是我们想要的文件类型,请按要求重新上传");
//return null;
json = "{\"res\":0}";
}
}else {
System.out.println("文件类型为空");
//return null;
json = "{\"res\":0}";
}
}else {
System.out.println("没有找到相对应的文件");
json = "{\"res\":0}";
//return null;
}
response.setContentType("application/json;charset=UTF-8");
response.getWriter().print(json);
}
上传存储图片就是这样写啊,那个图片的地址没错,就是域名/xx.jpg这样的格式。spring就是这样。
UploadController负责后端接收图片文件并保存到项目的images路径下
关键是仅仅存储就可以了是吧?存储完后要干啥么(比如做为资源给用户访问?)?如果仅仅是存储,找个服务器的目录存储就行了吧
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
你这个前端的url都是临时的缓存url,并不是实际上传的服务器的url。
你的功能就是就是要实现上传图片吧。那直接在Controller端获取图片流然后写到对应目录里即可。