asp版百度ueditor在線編輯器上傳圖片錯(cuò)誤(無權(quán)限問題修復(fù))

2015年11月4日17:00:17 發(fā)表評(píng)論 4,739 ℃

在本地iis服務(wù)器上可以正常上傳圖片的asp版百度ueditor編輯器,上傳到網(wǎng)絡(luò)服務(wù)器上,使用上傳時(shí)錯(cuò)誤,用firebug查看響應(yīng):uploader.class.asp中代碼:fs.CreateFolder(path )無權(quán)限;經(jīng)分析和測試,原來百度這個(gè)asp上傳組件是采取逐級(jí)檢測文件夾的機(jī)制,如:物理地址為:e:\www\xxxx\upload\image\20151104\,它會(huì)從e:檢測是否存在,但遇到網(wǎng)絡(luò)服務(wù)器設(shè)置的比較安全的,不在當(dāng)前網(wǎng)站的物理路徑是不允許訪問的,但程序認(rèn)為是不存在路徑,從而執(zhí)行下面的創(chuàng)建文件夾的操作,建e:文件夾?肯定會(huì)顯示無權(quán)限。

asp版百度ueditor在線編輯器上傳圖片錯(cuò)誤(無權(quán)限問題修復(fù))

其實(shí)問題也好解決,在檢測過程中,先把本站所在根路徑獲取到,這個(gè)就不用檢測了,只用檢測本站根路徑下的文件夾是否存在就好了,這個(gè)權(quán)限一般的虛擬主機(jī)服務(wù)器是有的,把百度的asp上傳組件uploader.class.asp里的CheckOrCreatePath過程修改如下:

把源代碼

   Private Function CheckOrCreatePath( ByVal path )

        Set fs = Server.CreateObject("Scripting.FileSystemObject")

        Dim parts

        parts = Split( path, "/" )

        path = ""

        For Each part in parts

            path = path + part + "/"

            If fs.FolderExists( path ) = False Then

                fs.CreateFolder( path )

            End If

        Next

    End Function

修改為

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


即可完美解決上傳權(quán)限問題。

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: