MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    Image.isUploaded()失效了?

    开发交流
    image 图片上传 spring boot java mirai core
    1
    1
    226
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • wssy001
      wssy001 ⭐2021⭐ 最后由 wssy001 编辑

      项目有个需求,当上传的图片过大时先返回一个“图片正在上传中……”的提示。

      查看文档,发现了这个Image.isUploaded()方法
      照着注释试了几次,发现效果不符预期,返回结果总是false。

      环境:

      OpenJDK 17
      Mac OS Monterey 12.6.1
      mirai-core-jvm 2.13.0-RC2
      SpringBoot Maven 项目
      

      测试操作
      我先是如下操作

      File file = new File(photoPath);
      try (ExternalResource resource = ExternalResource.create(file)) {
          String suffix = FileNameUtil.getSuffix(file);
      
      //  我能确保该方法返回的imageId与Bot.uploadImage()返回的一致
          String imageId = generateImageId(resource.getMd5(), suffix);
          Image image = Image.fromId(imageId);
      
      //  false,即使我能确保QQ服务器中存在该图片
          return Image.isUploaded(image, bot);
      } catch (Exception e) {
          return false;
      }
      

      查看源码,又通过Image.Builder构造Image对象

      File file = new File(photoPath);
      try (
          ExternalResource resource = ExternalResource.create(file)
      ) {
          BufferedImage bufferedImage = ImageIO.read(file);
          String suffix = FileNameUtil.getSuffix(file);
          String imageId = generateImageId(resource.getMd5(), suffix);
          Image.Builder builder = Image.Builder.newBuilder(imageId);
          builder.setType();
          builder.setSize();
          builder.setWidth();
          builder.setHeight();
          
      //  我能确保上述参数与Bot.uploadImage()返回的一致
          Image image = builder.build();
      //  仍然是false,图片的确在服务器上
          return Image.isUploaded(image, bot);
      } catch (Exception e) {
          return null;
      }
      

      不确定是不是BUG。X (

      暂时的替代方法如下:
      通过Image.queryUrl()获取图片的URL,调用http GET请求获取目标图片,也可通过状态码来进行简易判断。

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact