FCKeditor – アップロード機能編

FCKeditor自体は簡単に設置できたのだが、アップロード機能の設定は簡単というわけにはいかない。

以下の動作を理解しなければ出来ないからだ。

1. ファイルマネージャーの動作
2. ファイルマネージャーからAjaxで呼び出されるコネクターの動作

今回の説明は、PHP、JavaScriptともに中級以上の人じゃないと理解出来ないかもしれない。

とにかく、まず、これらの基本的な設定を行う。

fckconfig.js

以下の部分を修正する。

var _FileBrowserLanguage	= 'php' ;	// asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage	= 'php' ;	// asp | aspx | cfm | lasso | php
FCKConfig.LinkUpload = false ;
FCKConfig.ImageUpload = false ;
FCKConfig.FlashUpload = false ;

コネクターにはPHPを使う。
そして、アップロードタブは表示しない。アップロードタブで選択するアップローダにはバグがあり、目的のフォルダにアップロードできないためだ。

editor/filemanager/browser/default/connectors/php/config.php

以下の部分を修正する。

$Config['Enabled'] = true ;
// $Config['UserFilesPath'] = '/UserFiles/' ;

コネクターを使用可にする。
アップロードディレクトリを動的に指定できるようにする。

アップロードディレクトリ

アップロードディレクトリを作成しておく。Webサーバが更新できるよう、アクセス権を設定しておく。PHPやCGIでユーザ別のディレクトリを作成する場合も、同様にアクセス権を設定させる。

FCKeditorのファイルマネージャは、指定されたアップロードディレクトリ上に、自動的にタイプ別のサブディレクトリを作成する。
このため、PHPがセーフモードの場合にはアップロードしたファイルを保存できないので注意が必要だ。

PHPスクリプトの修正

FCKeditor – 設置編 のサンプルを基に、PHPスクリプトを修正する。

<?php
...
define('DIR_UPLOAD_USER', '/upload/user/');
...
$user_id = [ユーザID];
...
?>
...
<script type="text/javascript" src="FCKeditor/fckeditor.js"></script>
<script type="text/javascript">
<!--
function on_load() {
//==================================================================
// FCK Editor
var oFCKeditor = new FCKeditor( 'contents' );
oFCKeditor.BasePath = '/FCKeditor/';
oFCKeditor.Width = '800';
oFCKeditor.Height = '700';
oFCKeditor.ToolbarSet = 'Default';
path = '<?php echo DIR_UPLOAD_USER . $user_id . '/'; ?>';
connector = 'connectors/php/connector.php';
url = oFCKeditor.BasePath + 'editor/filemanager/browser/default/browser.html';
oFCKeditor.Config['LinkBrowserURL'] = url + '?Connector=' + connector + '&ServerPath=' + path;
oFCKeditor.Config['ImageBrowserURL'] = url + '?Connector=' + connector + '&ServerPath=' + path + '&Type=Image';
oFCKeditor.Config['FlashBrowserURL'] = url + '?Connector=' + connector + '&ServerPath=' + path + '&Type=Flash';
url = oFCKeditor.BasePath + 'editor/filemanager/upload/php/upload.php';
oFCKeditor.Config['LinkUploadURL'] = url + '?ServerPath=' + path;
oFCKeditor.Config['ImageUploadURL'] = url + '?ServerPath=' + path + '&Type=Image';
oFCKeditor.Config['FlashUploadURL'] = url + '?ServerPath=' + path + '&Type=Flash';
oFCKeditor.ReplaceTextarea();
}
// -->
</script>
...

1件のコメント

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください