前端通过方法解析出一个,文件上传的本地主机路径URL,后端怎么接收这个URL,是需要后端生成的URL怎么写呢?

上传文件后,前端js解析出本地url,提取后,在后端怎么接收
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- been_ss 2021-10-19 19:13关注
哈喽,上传文件到服务器,然后保存文件,本地环境放本地,外网放服务器,也可以上传oss,可以根据请求地址判断什么环境:
代码大致如下:public String uploadOssImg(@RequestParam("file") MultipartFile multipartFile,HttpServletRequest req) { String reqUrl = req.getServerName(); // 通过这个判断环境 String path = saveOneImg(multipartFile); // 保存 return '本地域名或外网域名或oss域名'+path } // 保存图片并返回路径,根据返回的路径进行域名拼接,即为完整路径 public String saveOneImg( MultipartFile multipartFile){ if (multipartFile.isEmpty() || StringUtils.isBlank(multipartFile.getOriginalFilename())) { log.error("未上传文件"); return null; } String contentType = multipartFile.getContentType(); if (!contentType.contains("")) { log.error("类型检测错误"); return null; } String originalFileName = multipartFile.getOriginalFilename(); String fileType = originalFileName.substring(originalFileName.lastIndexOf(".")); String dirPath = '自己拼路径'; String savePath = location + dirPath; // location为服务器暴露外部访问路径 String path = null; try { path = dirPath + '/' + write(multipartFile, savePath,fileType); } catch (IOException e) { e.printStackTrace(); } return path; } // 写文件 public String write(MultipartFile multipartFile, String savePath, String type) throws IOException { File file = new File(savePath); if (!file.exists()) { file.mkdirs(); } FileInputStream fileInputStream = (FileInputStream) multipartFile.getInputStream(); String fileName = UUIDUtil.getUuid() + type; BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(savePath + File.separator + fileName)); byte[] bs = new byte[1024]; int len; while ((len = fileInputStream.read(bs)) != -1) { bos.write(bs, 0, len); } bos.flush(); bos.close(); return fileName; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用