说起研究这个东西,缘由是公司网站的服务器挂了,硬盘废了,花钱都修不了,至于原因是什么我也不知道.
那么,损失当然也是比较大的,除了我本地时不时有备份相关数据库,模板和其他资料,我本地当然不会备份图片,我没有相关权限.那么网站的图片就没了呗.好在网络部编辑都是将图片上传至另一个服务器上面,当然地址也是另一个服务器上的.
那么现在假设,我们的PHPCMS系统与服务器A上,图片实际上传地址为服务器B.
当前情况是,网站上面的所有文章图片全部都是先上传至服务器B,发布文章内容调用的是服务器B的绝对地址.然而发布文章之后PHPCMS系统竟然将图片全部转换了一遍.并存在了phpcms程序根目录的uploadfile目录内.文件名也全部重新生成了一份.正是因为如此,导致服务器挂了,图片也找不到了.因为从未备份过这个uploadfile目录,为了避免以后这种情况再次发生,于是我希望他不自动转换.
对于自动转换图片地址并存储在后台本地,对此我进行了多种猜测:
- 上传至服务器B的图片尺寸过大,所以后台自动进行转换至符合标准并生成新的图片文件进行调用(同时也是为了适应自动添加水印功能需要重新生成.)
- 上传至服务器B的图片因为域名地址是非本地域名地址,为了防止盗链自动生成新的图片文件和地址进行调用(这样一来的好处有两个: 1. 平时编辑们在转载别人的文章,甚至可以不对转载的原文章图片进行处理,之需要对文字进行简单的编辑就是一篇新的伪原创文章了. 2. 后台具备的采集功能在批量采集其他文章可以一次性批量转移到本地.)
那么虽然这样做的好处很多,但是,目前的需求就是我们并不希望他对外链的图片进行本地化,破坏了外链的图片路径.如何解决呢?
首先我找到了内容 > 内容发布管理 > 附件管理 > ,其中有个附件地址转换,点击进入他会提示:
- 当您的附件访问地址,发生修改的时候,可以使用本功能对内容中附件地址的批量修改。本功能不要滥用,只在有需要的时候使用,否则会有数据混乱的风险。
- 请在使用本功能之前做好数据备份,否则使用后无法恢复。
并给出了原附件访问地址:和新访问地址:,然而我在本地进行测试时候发现无效.可能是我对上面两条理解错误了.所以这个方法是行不通的.
那么究竟该怎么做呢,最后苦苦寻找,找到了解决办法.
其实修改这个设置十分简单.找到内容 > 内容相关设置 > 模型管理 > 里面内容发布时对应的文章模型,比如我用的是默认的文章模型,那么我们对默认的数据表为news的模型进行管理操作,打开字段管理,找到字段名为content,别名为内容的字段并单击修改.依次查看相关修改项目,找到相关参数(设置表单相关属性),其中有一个是否保存远程图片:选中否.如图:
牛逼啊,随便找到东西都能找到这里来。不错哦。(百度行列式[2,3])