美文网首页
上传图片接口

上传图片接口

作者: 一叶知秋_038b | 来源:发表于2019-05-30 09:22 被阅读0次

项目中经常会遇到上传图片和头像 记录下接口

  1. 上传头像
    逻辑:每个账号都只有一个头像 所以这里将每个账号的头像名称设为固定值,如User_(userid).jpg 这样 只需要上传此名称的图片 前天根据id获取就行
@ApiOperation(value = "上传用户头像",httpMethod = "POST", produces = "application/json")
    @ApiResponse(code = 200, message = "success", response = ResponseBase.class)
    @RequestMapping(value = "/uploadPortrait",method = RequestMethod.POST, produces = "application/json")
    public ResponseBase uploadPortrait(@RequestParam("file") MultipartFile file,HttpServletRequest request){
        String userid = request.getParameter("userid");
        File dir = new File(UPLOADED_File);
        if(!dir.exists()){
            dir.mkdir();
        }
        String fileName = "User_"+userid;
        String originalFilename = file.getOriginalFilename();
        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        String targetUploadPath = dir + File.separator + fileName + suffix;
        File imgurl = new File(targetUploadPath);
        if(imgurl.exists()){
            FileUtils.deleteQuietly(imgurl);
        }
        try {
            FileUtils.writeByteArrayToFile(new File(targetUploadPath), file.getBytes());
            return setResultSuccess();
        } catch (IOException e) {
            System.out.println(e.getStackTrace());
        }
        return setResultError("头像上传失败");
    }

2.文件上传 多图上传
逻辑 多张图片上传 图片名起初为uuid-test 当用户点击保存时 删除-test后缀 关联图片 这样要是发生异常情况 写个定时器 定期清理 -test后缀 冗余图片 可以大大减少垃圾图片

//处理文件上传
    @ApiOperation(value = "上传图片文件,支持多图片上传")
    @RequestMapping(value="/uploadImgs", method = RequestMethod.POST, produces = "application/json")
    public JSONArray uploadImgs(@ApiParam(name = "file", required = true, value = "file") @RequestParam("file") MultipartFile[] files){
        JSONArray res = new JSONArray();
        File flie = new File(UPLOADED_File);
        if(flie.exists()) {
            flie.mkdir();
        }
        for (int i = 0; i < files.length; i++) {
            MultipartFile file = files[i];
            String originalFilename = file.getOriginalFilename();
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String filename = UUID.randomUUID().toString().replaceAll("-", "") + "-test" + suffix;
            String targetUploadPath = flie + File.separator + filename;
            try {
                FileUtils.writeByteArrayToFile(new File(targetUploadPath), file.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
            res.add(filename);
        }

        return res;
    }

3.获取图片
前端img url直接访问后端/getImages/图片名 即可显示图片

@ApiOperation(value = "获取图片", httpMethod = "GET", produces = "application/json")
    @ApiResponse(code = 200, message = "success", response = ResponseBase.class)
    @RequestMapping(value = "/getImages/{filename}", method = RequestMethod.GET, produces = "application/json")
    public void getImages(HttpServletResponse response, @PathVariable("filename") String filename) throws IOException {
        String path = UPLOADED_File + filename;
        File dir = new File(path);
        if(dir.exists()){
            byte[] bytes = FileUtils.readFileToByteArray(dir);
            OutputStream out = response.getOutputStream();
            out.write(bytes);
            out.flush();
            out.close();
        }
    }

相关文章

  • 图片上传

    图片上传 获取阿里云接口 图片上传到阿里云 图片预览接口post http://113.108.139.178:1...

  • 多张图片,一张一张上传(处理结果那有点蠢)

    向外暴露结果接口: 初始化: 上传图片 图片上传成功处理 图片上传失败处理

  • 打开相册上传图片

    1、打开相册 2、接收 3、上传图片 使用Retrofit上传图片 4、接口

  • Android 打开相册上传图片(调用系统方式)

    1、打开相册 2、接收 3、上传图片 使用Retrofit上传图片 4、接口

  • 异步发送图片

    异步发送图片就是:写两个接口,一个是上传图片的接口,一个是接收并存储图片URL的接口。前端先调用上传图片的接口把图...

  • 上传图片接口

    项目中经常会遇到上传图片和头像 记录下接口 上传头像逻辑:每个账号都只有一个头像 所以这里将每个账号的头像名称设...

  • GCD调度组的业务场景使用探讨

    场景一 发帖流程:图片上传接口和发布接口。图片上传到服务器是比较耗时的操作需要异步处理,把图片上传到服务器后,服务...

  • SXAUFaceDemo接口需求

    上传图片接口上传图片后,返回给前台一个图片编号,后续接口将使用该图片编号 向人脸库中添加人脸图片编号姓名 列出人脸...

  • 多线程上传图片功能

    1.多线程上传图片的客户端 2.多线程上传图片的服务器TcpImageRunable接口 3.多线程上传图片的服务...

  • 小程序上传图片跳坑

    背景:小程序上传图片,调用后台接口,后台接口获得文件后将该文件上传到oss上,最后返回给小程序前端oss图片路径。...

网友评论

      本文标题:上传图片接口

      本文链接:https://www.haomeiwen.com/subject/cpaptctx.html