百度ueditor 1.4.3在win2003+IIS6环境下不能上传图片,asp版百度ueditor在线编辑器上传图片错误

[ 2019-03-25 08:33:20 | 作者: admin ]
字号: | |
用的是ueditor 1.4.3 ASP版,为避免自己修改代码后造成的问题,直接从百度官方下载ueditor 1.4.3 ASP版,解包后只设置了ASP/config.json文件里的上传路径,然后在软件包中自带的演示页面index.html的编辑器中进行图片上传。结果在本地win7+iis7的环境下测试一切正常,但同样的代码放到win2003+iis6的服务器上就不能上传图片,没任何提示(Chrome下会提示“上传错误”,IE下无任何提示)。这是什么原因?在网上找了一天都没找到原因,要崩溃了!~~~~

补充:
1、在本地无论是IE还是Chrome都可以上传,在win2003服务器上无论是什么浏览器都不能上传。
2、WEB目录的权限已确认设置正确,IIS匿名访问帐户拥有所有权限。
3、IIS6的ASP最大请求限制(也就是System32\inetsrv\metabase.xml中的ASPMaxRequestEntityAllowed的值已改为5120000。


解决方法(转自:http://blog.sina.com.cn/s/blog_3ec2009f0102vkp4.html):
原来根本就不是配置错误的原因,而是百度发布的ueditor 1.4.3版本来就在IIS6下面有这个问题而没有修正(可能仅限ASP版的有问题)。在Github开源平台有ueditor的支持内容,在里面下了一个开发版,把ASP目录中的所有文件覆盖原来的,就可以了!

在本地iis服务器上可以正常上传图片的asp版百度ueditor编辑器,上传到网络服务器上,使用上传时错误,用firebug查看响应:uploader.class.asp中代码:fs.CreateFolder(path )无权限;经分析和测试,原来百度这个asp上传组件是采取逐级检测文件夹的机制,如:物理地址为:e:\website\xxxx\upload\image\20150529\,它会从e:检测是否存在,但遇到网络服务器设置的比较安全的,不在当前网站的物理路径是不允许访问的,但程序认为是不存在路径,从而执行下面的创建文件夹的操作,建e:文件夹?肯定会显示无权限。

其实问题也好解决,在检测过程中,先把本站所在根路径获取到,这个就不用检测了,只用检测本站根路径下的文件夹是否存在就好了,这个权限一般的虚拟主机服务器是有的,把百度的asp上传组件uploader.class.asp里的CheckOrCreatePath过程修改如下:
 
Private Function CheckOrCreatePath( ByVal path )
               Set fs = Server.CreateObject("Scripting.FileSystemObject")
               Dim parts,serverpath
               serverpath=lcase(Server.MapPath("/"))
               path=replace(lcase(path),serverpath,"")
               parts = Split( path, "" )
               path = ""
                   
               For Each part in parts
                    path = path + part + ""
                    If fs.FolderExists( serverpath & path ) = False Then
                    fs.CreateFolder(serverpath & path )
                    End If
               Next
        End Function
 
完美解决上传权限问题。

参考:
http://blog.sina.com.cn/s/blog_4cd978f90102w5ht.html
http://fex.baidu.com/ueditor/#server-asp
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2582

这篇日志没有评论。

此日志不可发表评论。