MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. lhqm
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 1
    • 帖子 14
    • 最佳 0
    • 有争议的 0
    • 群组 0

    lhqm

    @lhqm

    0
    声望
    1
    资料浏览
    14
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    lhqm 取消关注 关注

    lhqm 发布的最新帖子

    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 嗯嗯!好的,谢谢大佬呐

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 嗯,主要是怕写错,就这个写的协程,好像没有用到昨晚上大佬跟我说的那个语句,我就怕是错的哈哈哈

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 那么意思是这样写就是可以了的对吧?那个协程我发现我有点看不懂教程……我还是对线程熟悉一些,唔,协程那个没有问题吧?

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 嗷嗷,我记得这个方法,谢谢大佬!

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 唔,大佬,那这个图片的默认保存路径是哪里呀?

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki filename是用户传入的文件名字,我现在只是测试,所以说让用户自己传名字。之后我考虑再写个函数,直接把图片的mirai码里边那个ID切出来当名字。

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 大佬大佬,下载图片是这么写嘛?另外还烦请大佬告诉一下存储的相对路径应该是怎么样的
      频道内的执行过程

      if (msg=="#添加图片"){
                      //判断添加请求的发起者是否属于管理员
                      if (primer==sender.id ){
                          //TODO:操作员先输入描述和图片
                          subject.sendMessage("请在50分钟内发送图片名称")
                          val fileName=nextMessage(3000_000).filterIsInstance<PlainText>()[0].content
                          subject.sendMessage("请在50分钟内发送图片")
                          val image=nextMessage(3000_000).filterIsInstance<Image>()[0]
                          subject.sendMessage("图片正在处理")
                          //TODO:下载图片
                          downLoadImage(image.queryUrl(),fileName)
                      }else{
                          subject.sendMessage("您无权进行此操作")
                      }
                  }
      

      下载类的执行过程

      fun downLoadImageByUrl(url:String,fileName:String){
              //通过url的字符串强行转为URL,然后获取到InputStream
              val str= URL(url)
              val uc=str.openConnection()
              val input=uc.getInputStream()
              //向输出文件写入名字和路径,然后写入字节流
              val output= FileOutputStream(fileName)
              var j=0
              j=input.read()
              while (j!=-1){
                  output.write(j);
                  j=input.read()
              }
              input.close()
              output.close()
      }
      fun downLoadImage(url: String,fileName: String){
          //开启一个协程来执行下载
          GlobalScope.launch (context = Dispatchers.IO){
              downLoadImageByUrl(url,fileName)
          }
      
      }
      

      还有喔,那个logger我是这么写的,反正写在频道内,Android的控制台是没有任何输出的,我不知道是我写的有错还是Android有bug,我导的包是net.mamoe.mirai.utils.info
      cec91191-f377-4fac-81e9-2b106b5ead4a-图片.png

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 嗯嗯!大佬我先睡了,明天用电脑了再发上来吧,感谢大佬了哈,大佬好梦哟~

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 就是直接调用的logger.info(),唔,我用手机回的,传不上来图片,频道外边用这个方法都行,放频道里就没用了,给开发和管理增加了不小的难度🙃

      发布在 开发交流
      lhqm
      lhqm
    • RE: 不知道该怎么上传图片用于以后使用

      @tsudzuki 再次谢谢大佬的建议!不过这个相对路径应该怎么去写呢?协程的话我先自己去看看kotlin的协程吧!另外的话……Android的那个logger,我之前写在频道里测试,打印每一次别人说的话。就是只要有人在群里说话,他就会触发群频道嘛,但是logger没有任何输出……,只有在onenable的频道外边才有用……☹️

      发布在 开发交流
      lhqm
      lhqm