jueves, enero 20, 2011

Permitir Gestion de archivos con FCKEditor y PHP

Tomado de:
Permitir Subir Archivos con FCKEditor

Por omisión la Gestión de Archivos esta deshabilitada cuando se utiliza el FCKEditor en el Browser, por razones de seguridad , de esta manera muchos usuarios no pueden subir archivos al servidor por medio del browse.Este post nos ayuda como ajustar de mejor manera que permita subir archivos cuando se utiliza el editor FCKEditor.

Mensaje de Error.

En la instalación por omision del FCKEditor, si se da un click en el Boton "Browse Server" en cualesquiera de los dialogos de archivos, por ejemplo cuando se inserta un archivo, recibe el siguiente mensaje:





This connector is disabled.
Please check the "editor/filemanager/connectors/php/config.php" file

Habilitando el conector.

Para habilitar el conector, cimplemente edite el archivo "/modules/fckeditor/fckeditor/filemanager/connectors/php/config.php" ubique la siguiente linea:

$Config['Enabled'] = false ;

Modifiquelo por:
 
$Config['Enabled'] = true ;

Grabe el archivo y ahora intente subir una imagen por medio del FCKEditor en el browse.
Existe modificaciones adicionales que son requeridas ya que estas estan en la parte inferior, las mismas que permite trabajar de mejor manera otorgando permisos a ciertas carpetas, donde se ubicaran los archivos que son cargados por esta modalidad..

Utilizando Seguridades.

El FCKEditor dispone de una instancia protegida en un archivo .htaccess con el usuario y el password, por  IP o algo similar, usted debe normalmente permitir al conector que desplegue información, de lo contrario las personas revisaran información de su servidor y eso es peligrosos.
Si esta utilizando FCKEditoris se requiere autintificación para poder utilizar este archivo y para ello debe modificar el archivo config para que se pueda autentificar, aqui tenemos un ejemplo:


require_once('/path/to/authentication-libray.php');
$Config['Enabled'] = is_authenticated();

Getting the connector to actually work

Some other configuration options need to be set to actually get the connector working. By default it looks for and saves files to a folder called "userfiles". You can use this default if you want and need to create it if it doesn't already exist, changing the permissions to 0777 so the connector can create folders and files underneath this.
Alternatively you can change the following setting:
$Config['UserFilesPath'] = '/userfiles/' ;
to whereever it is you want to browse/store files. For example if you want to be able to browse all files and folders under the root level you can change it to this:
$Config['UserFilesPath'] = '/' ;
And then just change permissions for the directories you want to be able to upload to to 0777.
The section that looks like this also needs to be modified:
$Config['FileTypesPath']['Image'] = $Config['UserFilesPath'] . 'image/' ;
$Config['FileTypesAbsolutePath']['Image'] = ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'image/' ;
$Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Image'] = $Config['UserFilesAbsolutePath'] ;
Either remove the 'image/' part from from $Config['FileTypesPath']['Image'] and $Config['FileTypesAbsolutePath']['Image'] or add it to the other two (or change it to e.g. 'images/' and add that to the others if you wish to use a different name).
If you don't do this, you won't be able to find any of the files you upload. There are also configuration options in the same section for files of File, Flash and Media types and they have the same issue as with images.

Preventing file uploads

To only allow browsing and to prevent file uploads, change the config option:
$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder') ;
to:
$Config['ConfigAllowedCommands'] = array('GetFolders', 'GetFoldersAndFiles') ;

Preventing Flash and Media file uploads/browsing

To remove flash and media file types (you could also remove image and/or file types using this method), change the config option:
$Config['ConfigAllowedTypes'] = array('File', 'Image', 'Flash', 'Media') ;
to:
$Config['ConfigAllowedTypes'] = array('File', 'Image') ;

Removing file uploads from the Javascript dialogs

Even if you remove the file upload options from the server-sided configuration the options will still remain in the Javascript. When the user tries to upload a file they will get an error message. I have covered this is earlier posts so refer to those (Remove "Browse" button and "Upload" tab in FCKEditor Image Properties dialog and Remove "Browse" button and "Upload" tab in FCKEditor Link dialog).

No hay comentarios: