開啟Fckeditor上傳圖片功能
考慮到目錄安全性問題,默認Fckeditor2.6.6上傳功能并未開啟,所以第一步我們必須開啟Fckeditor上傳功能,這里需要注意,由于PHP版本Fckeditor上傳功能需要用到chomod函數(shù)對新建目錄進行權(quán)限設(shè)置,所以請務(wù)必確認在啟用Fckeditor上傳功能時PHP環(huán)境的用戶具有創(chuàng)建和更改上傳目錄的權(quán)限。
如果沒有開啟Fckeditor上傳功能,在點擊插入/編輯圖像按鈕,選擇上傳,在選擇完要上傳的文件后點擊發(fā)送到服務(wù)器上按鈕時會報錯誤信息如下
復(fù)制代碼 代碼如下:
This file uploader is disabled.
Please check the "editor/filemanager/connectors/php/config.php" file
根據(jù)錯誤信息,打開editor/filemanager/connectors/php目錄下config.php,找到
復(fù)制代碼 代碼如下:
$Config['Enabled'] = false ;
更改為
復(fù)制代碼 代碼如下:
$Config['Enabled'] = true ;
并在相應(yīng)目錄下建立userfiles上傳目錄后,F(xiàn)ckeditor上傳圖片功能開啟。
特別提醒:Fckeditor似乎有個BUG漏洞,即JS兼容性還不是太完美,之前我在Google Chrome游覽器下設(shè)置完后,F(xiàn)ckeditor PHP上傳一直實現(xiàn)不了,換了IE后一切正常。
Fckeditor上傳圖片時上傳路徑配置教程
作為獨立網(wǎng)站開發(fā)者,除了考慮技術(shù)還需要兼顧其他方便,比如SEO優(yōu)化,而目錄結(jié)構(gòu)(URL)優(yōu)化是SEO的一部分,這就需要在設(shè)置Fckeditor上傳圖片功能時考慮圖片上傳路徑問題。
默認Fckeditor圖片上傳路徑結(jié)構(gòu)有兩種形式:userfiles/文件名和userfiles/文件類型/文件名,針對兩種Fckeditor上傳方式:快速上傳(圖像屬性中的上傳)和服務(wù)器游覽上傳(圖像屬性中的鏈接),比如上傳圖片,QuickUpload模式上傳路徑為userfiles/文件名,服務(wù)器游覽上傳模式上傳路徑為userfiles/images/文件名。
Fckeditor圖片上傳路徑配置如下
打開editor/filemanager/connectors/php目錄下config.php文件,找到
復(fù)制代碼 代碼如下:
$Config['UserFilesPath'] = '/userfiles/' ;
更改為
復(fù)制代碼 代碼如下:
$Config['UserFilesPath'] = '/項目目錄/userfiles/' ;
注意:此處userfiles文件夾是針對http://localhost/的根目錄而言的。
以上是默認Fckeditor上傳路徑的配置,根據(jù)URL規(guī)劃你可以自定義Fckeditor的上傳目錄,只要修改config.php文件中的$Config['FileTypesPath']、$Config['FileTypesAbsolutePath']、$Config['QuickUploadPath']、$Config['QuickUploadAbsolutePath']四個上傳目錄路徑的值即可。這種方法一定程度上也能避免Fckeditor上傳圖片文件名重名問題。
限制Fckeditor上傳圖片大小設(shè)置
Fckeditor2.6.6默認并沒有限制上傳圖片文件的大小,可以通過兩種方法改進,一種可以通過修改PHP.INI配置文件上傳大小來限制,另一種方法只能手動修改Fckeditor源碼,方法如下
1、打開editor/filemanager/connectors/php目錄下config.php,創(chuàng)建Config變量設(shè)置上傳圖片大小,這里以KB為單位
復(fù)制代碼 代碼如下:
$Config['MaxImageSize']= '1024';
2、打開editor/filemanager/connectors/php目錄下commands.php,找到
復(fù)制代碼 代碼如下:
if ( isset( $Config['SecureImageUploads'] ) )
{
if ( ( $isImageValid = IsImageValid( $oFile['tmp_name'], $sExtension ) ) === false )
{
$sErrorNumber = '202' ;
}
//上傳圖片大小限制
}
在上傳圖片大小限制處,添加
復(fù)制代碼 代碼如下:
if ( isset( $Config['MaxImageSize'] ) )
{
$iFileSize = round( $oFile['size'] / 1024 );
if($iFileSize > $Config['MaxImageSize'] )
{
$sErrorNumber = '204';
}
}
說明:由于PHP計算上傳圖片大小以字節(jié)為單位,所以代碼首先將上傳的圖片大小折算為KB,再來對比是否超出了規(guī)定的圖片大小,如超出,則報錯。
注意最后將
復(fù)制代碼 代碼如下:
if ( !$sErrorNumber IsAllowedExt( $sExtension, $resourceType ) )
{
//Fckeditor上傳圖片功能
}
else
$sErrorNumber = '202' ;
代碼塊結(jié)尾處的else語句去除,否則實現(xiàn)不了限制Fckeditor上傳圖片文件大小的功能。
3、打開editor/dialog/fck_image/fck_image.js,添加錯誤代碼(errorNumber)信息,找到OnUploadCompleted函數(shù),添加
復(fù)制代碼 代碼如下:
case 204 :
alert( "Security error. File size error." ) ;
return ;
至此限制Fckeditor上傳圖片文件大小配置就完成了,其他類型的上傳文件大小限制也是這種思路。
Fckeditor上傳圖片文件名重名及中文亂碼解決方法
經(jīng)測試Fckeditor2.6.6并沒有解決上傳文件中文名變?yōu)閬y碼的問題,這是由于Fckeditor實現(xiàn)上傳功能時并沒有將文件重命名,容易導致上傳圖片文件重名及亂碼問題。
上傳圖片文件重名和亂碼解決方法如下
打開editor/filemanager/connectors/php目錄下commands.php,找到FileUpload函數(shù),在
復(fù)制代碼 代碼如下:
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ;
后添加
復(fù)制代碼 代碼如下:
$sFileName = rand(0,100).".".$sExtension;
此處rand函數(shù)可根據(jù)需要自行改變重命名規(guī)則。
另一種上傳圖片文件名亂碼解決方法為使用iconv函數(shù)對文件名進行編碼轉(zhuǎn)換,但仍然存在重名問題,所以針對Fckeditor上傳圖片文件名最好還是重命名。
Fckeditor上傳圖片添加水印功能
對于網(wǎng)站擁有者來說保護圖片版權(quán)添加水印必不可少,我們可以利用PHP添加水印函數(shù)結(jié)合Fckeditor文件上傳函數(shù)FileUpload實現(xiàn)圖片添加水印功能,水印函數(shù)請參考PHP圖片水印函數(shù):支持以圖片和文字方式添加水印一文。
至此Fckeditor在PHP環(huán)境下的上傳圖片配置入門教程就介紹完了。
您可能感興趣的文章:- PHP中CKEditor和CKFinder配置問題小結(jié)
- 探討fckeditor在Php中的配置詳解
- fckeditor編輯器在php中的配置方法
- php下安裝配置fckeditor編輯器的方法
- php下FCKeditor2.6.5網(wǎng)頁編輯器的使用方法
- php ckeditor上傳圖片文件名亂碼解決方法
- php fckeditor 調(diào)用的函數(shù)
- fckeditor在php中的用法(添加于修改寫成了函數(shù))
- 將FCKeditor導入PHP+SMARTY的實現(xiàn)方法
- jQuery+PHP發(fā)布的內(nèi)容進行無刷新分頁(Fckeditor)
- php版本CKEditor 4和CKFinder安裝及配置方法圖文教程