开发[远程图片下载]插件的背景:
经常要将优秀的文章转载到我的网站,图片不可缺少。于是就有了此插件。
远程图片下载插件 for ckeditor功能:将ckeditor编辑区的图片下载到本地,并将编辑器中的旧图片地址改为本地地址,实现远程图片本地化。
注:此插件为js+php版。有网友问:有纯php版的吗?个人认为纯php版获取图片超时的可能性太大了。一些优秀的文章经常是15-25张图片,单张图片压缩后体积约为200KB,在普通的网络下很容易导致网络超时,部分图片获取失败,文章也发不成功。
多图地址:https://www.52pojie.cn/thread-1393075-1-6.html, https://www.52pojie.cn/thread-1733149-1-1.html。
说起此插件,在我的电脑里可谓历史悠久,从2011年开发出来以后,一直到2023年还在默默的工作,几次大改之后,变得更加成熟、稳重:
- 版本一:2011年远程图片下载插件 for fckeditor诞生,此时,使用xml+ajax同步方式获取编辑区的所有图片,不会自动去下载图片以免浪费空间资源,必须手动点击下载图片
- 版本二:fckeditor改为ckeditor后,决定改版一次,使用json+ajax异步方式获取编辑区的所有图片。
- 版本三:想来想去,觉得使用json+ajax同步方式获取编辑区的所有图片比较稳定。
- 版本四:2024.03.19使用json+ajax异步方式获取图片,已经克服了技术难点,使得用户体验更进一步升级。
看完版本变化之后,咱们来分析一下,使用同步与异步的差别:
- 同步:指使用ajax时,async为false。这种方式是一次只获取一张远程图片,然后替换一次编辑器内容。由于一次只获取一张图片,超时的可能性几乎为0。缺点:多次请求才能完成任务。
- 异步:指使用ajax时,async为true。这种方式是一次获取所有远程图片,然后替换一次编辑器内容,完成所有任务。缺点:如果图片过多过大或者网络不稳定,超时的可能性非常大。
- 异步:技术突破,已经达到异步的体验又能达到同步的要求。
经过多年的使用,最终决定使用同步的方式一张一张的获取远程图片,这只是程序方面;交互性方面,还是点击一次即可。即使某张图片下载失败,也可以再次点击下载图片,而此时,只会下载失败的图片,缺点可以忽略不计。
注:同步会卡页面!同步会卡页面!同步会卡页面!但能保证所有图片可以正常保存下来。
2024.03.19技术有所突破,异步不再卡浏览器页面且具备同步保存图片的能力。
例如,我下面要保存的远程图片达39张之多,如果用异步一次性取图片,服务器超时的可能性达到95%以上。
界面:
![](data/attachment/forum/202308/10/221130zv6sjecmip1umcqs.jpg)
![](data/attachment/forum/202308/10/222826gs33aw3z3mm8v3p6.jpg)
需要此插件的,可以直接联系我。39元一份。含有完整的使用方法:安装,调试,使用。
![](static/img/contact.jpg) |