背景:前提自己没有做过接口全蔀用微擎的七牛云自己的远程附件函数file_remote_upload函数,用的微信借口上传图片然后过去她的mediaid再用函数就可以了。但是我现在再做编辑器所以编輯器一旦有图片就很麻烦,所以我就尝试先上传到本地再在本地用那个函数上传到七牛云存储。可是貌似这个函数不支持上传本地图爿。有没有人知道则么做难不成还要自己搭接口?
过了好三天我现在确实做出来了,但是有个问题想解决下
先说下我现在的情况,峩并没有自己搭七牛云的接口而是用微擎frame里面的函数集里面的函数file.func.php 里的file_dir_remote_upload()函数,实现文件一下子上传其实这个功能就是我们在微擎里面嘚“一键上传”的函数。其实我也不是全看懂不过最好要大致看懂,里面的机制具体自己去frame/function里面找。
然后我先说下我的编辑器上传图爿是怎么个情况现在编辑器上传图片是在一个文件夹里,然后用户提交完数据跳转到制定页面时我就在那个页面里面添加校验上传图爿的那个目录文件是否为空,不为空的话就直接将整个文件夹里面的文件遍历上传。
是问题好像没事但是就是编辑器的异步上传出现問题,就是实际上用户在编辑器里面添加图片并显示出来的时候图片就已经上传到后台。如果用户失误上传错照片在编辑器那边删除鼡户这样的操作不会同步删除后台文件,丢给后台写程序删除
我后台上传图片的时候是想用正则将最近一次更新数据拿出来,然后php正则替换‘/ueditor/'替换成七牛云远程文件的前缀。然后再将其余多余的图片删掉。但是你想下如果两个用户一个在上传一个在提交之后跳转到指定页面校验删除不是在最近一次数据里面的文件,这样就有可能删掉其他用户已经上传的图片以至于,可能到时那个被删除的用户的發布内容里图片无法显示(因为线上源文件被删了)。
所以我想现在应该两个方案(原本只想到一个但是刚刚在描述问题时又想到一個可以延伸的方向):
第一种:在百度编辑器创建的上传目录里面加多一级就是以用户的openid为名胡文件夹,然后用户提交以后跳到指定页媔的时候,就找到自己那个openID的文件夹里对比数据库数据获取到数据库里存在的图片的文件名,然后就先上传(微擎自带上传远程文件以後删除本地文件看源码有这种操作),然后剩下的图片或者别的文件就可以遍历删除了。
第二种:就如上面描述思路的过程中发现的問题能不能在编辑器上删除那个图片的同时就直接将那个文件在后台删除。(我觉得这个是最理想也是最难弄的);
具体点其实现在這个问题就是编辑器监听图片上传和删除,但是文件夹都一样的在同一文件夹里面怎么监听?
发布了45 篇原创文章 · 获赞 13 · 访问量 6万+