@tsudzuki 嗯嗯!好的,谢谢大佬呐
lhqm 发布的最新帖子
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki filename是用户传入的文件名字,我现在只是测试,所以说让用户自己传名字。之后我考虑再写个函数,直接把图片的mirai码里边那个ID切出来当名字。
-
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
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 就是直接调用的logger.info(),唔,我用手机回的,传不上来图片,频道外边用这个方法都行,放频道里就没用了,给开发和管理增加了不小的难度🙃
-
RE: 不知道该怎么上传图片用于以后使用
@tsudzuki 再次谢谢大佬的建议!不过这个相对路径应该怎么去写呢?协程的话我先自己去看看kotlin的协程吧!另外的话……Android的那个logger,我之前写在频道里测试,打印每一次别人说的话。就是只要有人在群里说话,他就会触发群频道嘛,但是logger没有任何输出……,只有在onenable的频道外边才有用……☹️