图片上传到云服务器(又拍云)然后添加url到数据库

编程入门 行业动态 更新时间:2024-10-14 00:30:31

<a href=https://www.elefans.com/category/jswz/34/1760202.html style=图片上传到云服务器(又拍云)然后添加url到数据库"/>

图片上传到云服务器(又拍云)然后添加url到数据库

( ⊙ o ⊙ )!哟

今天做了一个将图片上传到又拍云,然后将又拍云的返回字段添加到数据库的接口方法


O(∩_∩)O然后我这边呢,是准备上传用户头像用的

         当然,你首先必须要有一个服务器

首先稍稍的把我写的东西交代一下

1.我用的是SpringMVC然后写的controller
2.我controller层返回的是ResultData封装类>>>>然而这些都和今天上传无关紧要,小伙伴们就算用的其他的框架,都是不影响操作的
3.打*号的地方才是大家需要了解的代码,其他统统都不要管

controller层的操作

 /*** 传图* * @param sessionId* @param request* @param response* @return*/
@RequestMapping(value = "/face", method = RequestMethod.POST)
@ResponseBody
public ResultData<String> changeFace(@CookieValue(value = "sid", defaultValue = "") String sid,HttpServletRequest request, HttpServletResponse response) {ResultData<String> resultData = new ResultData<String>();try {//*好了,开始了这一步小伙伴们应该都不陌生 就是multipart啦,页面上传文件的话是需要指定这个关键字的MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;//*获得第1张图片(根据前台的name名称得到上传的文件)MultipartFile imageFile = multipartRequest.getFile("file");//*非空验证,这一步就不需要我过多解释了吧if (null == imageFile) {//这里给我的resultData设置一些错误信息,这里不需要管,不用copyresultData.setStatus(CommonConstants.ILLEGAL_REQUEST);resultData.setData("图片未选中");resultData.setMsg("图片未选中");return resultData;} else {//这里是判断有没有登陆,也不用管String username = SystemManager.getInstance().getUserCookieMap().get(sid);if (null == username || username.isEmpty()) {resultData.setStatus(1000);resultData.setMsg("您还没有登录");return resultData;}//*****************************PS**************************************//**PS ---[1.2.3的步骤,是设置服务器图片存放位置的路径,不是本地哦)]**//*****************************PS**************************************//这里才是正文//***1.根据 UUID.randomUUID() 获取文件名(不懂UUID的同学可以看下我的博客,或者自行百度哦)String fileName = UUID.randomUUID().toString();//***2.设置相对路径String path = "/" + username + "/face/";//***3.设置保存路径String savePath = path + fileName;//ps下面是实例化图片类,同学们了解就行,我上传到数据库要用到//这个是我的图片实体类ImagesDomain record = new ImagesDomain();//应为我是要上传用户头像,说以用到了usernamerecord.setUsername(username);//设置描述>>为face>>顾名思义,就是头像啦record.setDes("face");//*在controller层处理完后,进入到uploadFileService(看英文意思就知道这是上传用的)//*方法返回的是:一个能在浏览器访问的url,这个url就是上传到服务器的图片//*这个service在这个类下面(往下翻)String imageUrl = uploadFileService.upload2ypyun(multipartRequest, savePath, record);//*imageUrl的非空验证(判断有没有上传成功)if (null == imageUrl || imageUrl.equals("")) {resultData.setStatus(CommonConstants.ILLEGAL_REQUEST);resultData.setData("上传失败");resultData.setMsg("上传失败");return resultData;}//实例化用户类,然后修改/新增头,这步大家不需要关心MembersDomain domain = new MembersDomain();domain.setUsername(username);domain.setFaceUrl(imageUrl);//调用底层方法,修改头像resultData = userService.changeFace(domain);}} catch (Exception e) {//抛个异常// TODO: handle exceptionresultData.setStatus(1);resultData.setData(null);resultData.setMsg(CommonConstants.tweetMessage);}return resultData;
}

service层的操作

         /*** 保存上传图片* * @param request* @param savePath:/目录名/文件名* @return 返回图片url* @throws IOException*/@Overridepublic String uploadypyun(HttpServletRequest request, String savePath) {//*获取传过来的MultipartHttpServletRequestfinal MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;//*然后创建一个map集合来存MultipartFile类型final Map<String, MultipartFile> files = multiRequest.getFileMap();//循环读for (Object item : files.values()) {//创建MultipartFile 接收MultipartFile file = (MultipartFile) item;//*HelperUtil是又拍云(服务器)提供,你买了或是租了应该有String path = "./" + HelperUtil.getUUID();try {//保存上传图片file.transferTo(new File(path));//*上传操作,返回urlString r = ImageUtil.uploadImage(path, savePath);return r;} catch (IOException e) {//抛异常throw new ServiceException();} finally {try {new File(path).delete();} catch (Exception e) {}}}return null;}

更多推荐

图片上传到云服务器(又拍云)然后添加url到数据库

本文发布于:2024-02-06 17:26:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750420.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图片上传   服务器   数据库   又拍云   url

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!