String path = basePath; try { File f = new File(path); if (!f.exists()) { f.mkdirs(); } file.transferTo(new File(f, img)); } catch (Exception e) { e.printStackTrace(); return GlobalResult.errorMsg("文件上传错误,文件夹不能创建"); } //获取项目路径 例如项目名为test 则值为 /test String contextPath = request.getServletContext().getContextPath(); //获取图片上传绝对路径保存数据库 String contextPathHttp = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/"; Map<String, String> map = new HashMap<String, String>(); map.put("src", contextPathHttp + "/uploads/" + img); map.put("url", contextPathHttp + "uploads/" + img); map.put("savePath", path + File.separatorChar + img); return GlobalResult.ok(map);请详细解释每一行代码
时间: 2023-06-26 21:05:39 浏览: 113
Exception in thread “main” javax.imageio.IIOException: Can’t read input file!
1. `String path = basePath;`: 将传入的`basePath`参数赋值给变量`path`。
2. `File f = new File(path);`: 根据`path`创建一个`File`对象。
3. `if (!f.exists()) { f.mkdirs(); }`: 如果指定路径的文件夹不存在,则创建文件夹。
4. `file.transferTo(new File(f, img));`: 将上传的文件保存到指定路径的文件夹下,并使用原始文件名。
5. `String contextPath = request.getServletContext().getContextPath();`: 获取项目的上下文路径,例如项目名称为`test`,则该值为`/test`。
6. `String contextPathHttp = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";`: 获取项目的访问路径,包含协议、主机名、端口号和上下文路径,例如`http://localhost:8080/test/`。
7. `Map<String, String> map = new HashMap<String, String>();`: 创建一个`HashMap`对象,用于存储返回的数据。
8. `map.put("src", contextPathHttp + "/uploads/" + img);`: 将上传文件的访问路径保存到`map`中,使用`/uploads/`作为文件夹名称。
9. `map.put("url", contextPathHttp + "uploads/" + img);`: 将上传文件的访问路径保存到`map`中,不带斜杠。
10. `map.put("savePath", path + File.separatorChar + img);`: 将上传文件的保存路径保存到`map`中,使用`File.separatorChar`作为路径分隔符。
11. `return GlobalResult.ok(map);`: 返回一个包含`map`的成功响应。
阅读全文