大部分网站的后台,都是把图片上传到本地服务器上,但图片也消耗很多带宽,门户网站都有单独的图片服务器,怎么实现呢?我大概思考了下有如下几种方法可以解决:
1.在图片服务器上开通FTP,人为添加图片地址即可,但不方便,特别是在可视编辑器中看图还的多一部操作.
2.在图片服务器上开通FTP,并提高IIS执行dosShell访问ftp,但是不安全.
3.在图片服务器上开通IIS,WEB后台直接访问(还是存在在编辑器中不方便查看的问题,但可以用js控制上传后自动追加到HTML编辑窗口中)
4.利用现有在线编辑器的上传程序来实现.
第三,四种方法比较靠谱,但还需要解决跨域问题,第三种还要单独写程序,改动比较大,用第四种最理想.
那么怎么样才能实现呢?我以前用的后台编辑器是dvbbs的后台编辑器,这次我改用FCKeditor,可我不是很熟悉,捣鼓了一天,终于试验成功了.方法如下:
1.在图片服务器(img1.f.cdbs.com.cn)和后台服务器(gl.cdbs.com.cn).上都安装FCKeditor.(实际上gl.cdbs.com.cn上只需要fckeditor.asp,因为asp不能include外网文件)
2.在后台程序中设置sBasePath=http://img1.cdbs.com.cn/fckeditor/后,才建立编辑器).可以直接调用图片服务器的编辑器.
<% Dim sBasePath sBasePath="http://img1.f.cdbs.com.cn/fckeditor/" Dim oFCKeditor Set oFCKeditor = New FCKeditor oFCKeditor.BasePath = sBasePath oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/silver/" '设置皮肤 'oFCKeditor.Width="80%" oFCKeditor.Height="400px" oFCKeditor.Value = "" oFCKeditor.Create "FCKeditor1" %>
3.主要修改"img1.f.cdbs.com.cn/FCKeidtor/fckconfig.js"文件
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
4.修改"img1.f.cdbs.com.cn/fckeditor/editor/filemanager/connectors/asp/config.asp"配置文件,
ConfigIsEnabled = true '首先要开启配置.
5.解决跨域访问.不过可以设置"document.domain='cdbs.com.cn';"来解决.域名完全不同也有相应的方法,
6.还需要解决安全问题,这个可以通过跨站cookies来判断是否有权限上传(待完成).
最终实现了,在后台编辑器中上传图片到相应的图片服务器,图片地址是相对地址,我们可以通过保存当前是哪组图片服务器来区分.例"新闻发布"等模块就可以这么做,但是对于其他模块如:图片展示模块,音乐专辑模块等,一个标题下就存在多个媒体文件,那么还是需要独立写程序来完成.那么又怎么实现了?