是这样的,本人公司现在需要用户能够上传图片到服务器,上传完之后可以根据路径直接取到资源,现在我的思路如下:
前端
<form action="/saveFile" method="post" enctype="multipart/form-data">
<input type="file" name="file"/><br/>
<input type="submit"/>
</form>
后端controller层
@RequestMapping("/saveFile")
@ResponseBodypublic String saveFile(MultipartFile file,HttpServletRequest request){
String path = request.getSession().getServletContext().getRealPath("");
try {
file.transferTo(new File(""));
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
问题来了,用MultipartFile的话图片下载的路径因该是哪?在不停服务器的前提下上传完成后可以直接显示在前台吗?求助大神!
public void uploadImg(ModelMap modelMap, MultipartFile thumbnail, HttpServletRequest request) throws IOException { MessageDto msg = new MessageDto(); if (thumbnail != null) {// 判断上传的文件是否为空 String path = null;// 文件路径 String type = null;// 文件类型 String fileName = thumbnail.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()); // 设置存放图片文件的路径 path = realPath + "images/" + trueFileName + "." + type; //System.out.println("存放图片文件的路径:" + realPath + "名称" + trueFileName); // 转存文件到指定的路径 thumbnail.transferTo(new File(path)); System.out.println("文件成功上传到指定目录下"); modelMap.put("src", "/images/" + trueFileName + "." + type); } else { msg.setCode("0"); msg.setCtx("不是我们想要的文件类型,请按要求重新上传"); modelMap.put("msg", msg); return; } } else { msg.setCode("0"); msg.setCtx("文件类型为空"); modelMap.put("msg", msg); return; } } else { msg.setCode("0"); msg.setCtx("没有找到相对应的文件"); modelMap.put("msg", msg); return; } }
试试呢
把图片路径直接存一个在回显一下就好了
你用的spirngboot嘛,先全局配置一个你上传文件的物理路径,然后用一张表来保存那个文件路径,你最好保存相对路径---简单吧