netty-websocket-spring-boot-starter icon indicating copy to clipboard operation
netty-websocket-spring-boot-starter copied to clipboard

请问图片或者文件应该如何处理

Open xingxianping opened this issue 4 years ago • 60 comments

大佬,请问图片或者文件应该如何处理

xingxianping avatar Aug 24 '20 08:08 xingxianping

可以转为二进制传递吧

github-yitao avatar Aug 24 '20 08:08 github-yitao

如何操作呢?

xingxianping avatar Aug 24 '20 08:08 xingxianping

如果转成二进制,接收到之后如何转化成图片和文件

xingxianping avatar Aug 24 '20 08:08 xingxianping

感觉可能会出现文件过大或者图片过大产生无法发送

xingxianping avatar Aug 24 '20 08:08 xingxianping

图片转二进制百度一大堆。。但是你说的大小确实是一个问题,get方法有参数大小限制

github-yitao avatar Aug 24 '20 08:08 github-yitao

我在想安卓端图片传来之后收到的是流吧,那么是不是把流转成二进制然后直接推送?

xingxianping avatar Aug 24 '20 08:08 xingxianping

可否有示例代码

xingxianping avatar Aug 24 '20 08:08 xingxianping

可以先进行文件上传,返回id,然后对id进行保存

github-yitao avatar Aug 24 '20 08:08 github-yitao

就是文件上传和消息发送分开走,文件上传成功再走发送消息

github-yitao avatar Aug 24 '20 08:08 github-yitao

但是参考微信和qq这样的im工具好像都是直接把图片保存在本地,没有保存在服务器上的,本地清理后就展示不了图片了

xingxianping avatar Aug 24 '20 08:08 xingxianping

而且服务器如果为了图片和文件单独去开一个这样的,感觉会增加服务器压力,正常做法一般好像都是写入本地的,所以我比较想知道下推送方面的问题

xingxianping avatar Aug 24 '20 08:08 xingxianping

是的,如果本地清理了就没有了,第一次从服务器下载,以后都是从本地缓存读取

github-yitao avatar Aug 24 '20 08:08 github-yitao

可以参考微信,你本地清除缓存后,他会有一个本地清理的标识

github-yitao avatar Aug 24 '20 08:08 github-yitao

是这样操作的吗?先存入服务器?然后服务器就删除文件和图片?

xingxianping avatar Aug 24 '20 08:08 xingxianping

有单独的文件服务器吗?

github-yitao avatar Aug 24 '20 08:08 github-yitao

xingxianping avatar Aug 24 '20 08:08 xingxianping

你肯定不会删除涩,你删除他干嘛,微信这么做,你具体的业务还要根据自己的来

github-yitao avatar Aug 24 '20 08:08 github-yitao

你可以清楚后,再去文件服务器读取一遍

github-yitao avatar Aug 24 '20 08:08 github-yitao

那就是图片和文件走http协议?

xingxianping avatar Aug 24 '20 08:08 xingxianping

保存后返回文件路径?

xingxianping avatar Aug 24 '20 08:08 xingxianping

如果是文件路径确实比较好推送

xingxianping avatar Aug 24 '20 08:08 xingxianping

是的,他这个是不支持ssl的

github-yitao avatar Aug 24 '20 08:08 github-yitao

谢谢,我再想想具体的操作

xingxianping avatar Aug 24 '20 08:08 xingxianping

其实用onbinary最简单,你可以看看数据大小限制

github-yitao avatar Aug 24 '20 08:08 github-yitao

onbinary是传输byte数组的,可以用来传送二进制,大小限制我还没去试过

xingxianping avatar Aug 24 '20 08:08 xingxianping

0.7.3版本中增加了maxFramePayloadLength属性,进行配置即可. 新增了一个可以限制大小

github-yitao avatar Aug 24 '20 08:08 github-yitao

你肯定也要设置上传大小,不能超大文件往消息里面发送吧

github-yitao avatar Aug 24 '20 08:08 github-yitao

这不现实,感觉应该不会让传送超大文件

xingxianping avatar Aug 24 '20 08:08 xingxianping

请问maxFramePayloadLength属性如何设置

xingxianping avatar Aug 24 '20 08:08 xingxianping

本来都不允许的,你就按照二进制来,这个文档有介绍

github-yitao avatar Aug 24 '20 08:08 github-yitao