#2622: Automatic dispatching of uploaded files to different folders
-------------------------+--------------------------------------------------
Reporter: phKU | Owner:
Type: New Feature | Status: new
Priority: Normal | Milestone:
Component: General | Version: FCKeditor 2.6.3
Keywords: |
-------------------------+--------------------------------------------------
I suggest to add an option for automatic dispatching of uploaded files to
different folders set in filemanager…config.php file according to the file
type. For example, if an image is uploaded as 'FILE', it would be
nevertheless directed to the 'images' folder (if set) and if a new file
type such as 'PDF' is created in config.php for file extension 'pdf' with
a 'pdf_folder' destination folder, then FileUpload function would send it
to this folder.
I patched my version successfully by easily adding just the following two
lines of code in filemanager…command.php (and moving down a bit an
original one).
Before:
{{{
if ( isset( $_FILES['NewFile'] ) && !is_null(
$_FILES['NewFile']['tmp_name'] ) )
{
global $Config ;
$oFile = $_FILES['NewFile'] ;
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType,
$currentFolder, $sCommand ) ;
// Get the uploaded file name.
$sFileName = $oFile['name'] ;
$sFileName = SanitizeFileName( $sFileName ) ;
$sOriginalFileName = $sFileName ;
// Get the extension.
$sExtension = substr( $sFileName, ( strrpos($sFileName,
'.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ;
if ( isset( $Config['SecureImageUploads'] ) )
{
if ( ( $isImageValid = IsImageValid(
$oFile['tmp_name'], $sExtension ) ) === false )
{
$sErrorNumber = '202' ;
}
}
}}}
After:
{{{
if ( isset( $_FILES['NewFile'] ) && !is_null(
$_FILES['NewFile']['tmp_name'] ) )
{
global $Config ;
$oFile = $_FILES['NewFile'] ;
// Get the uploaded file name.
$sFileName = $oFile['name'] ;
$sFileName = SanitizeFileName( $sFileName ) ;
$sOriginalFileName = $sFileName ;
// Get the extension.
$sExtension = substr( $sFileName, ( strrpos($sFileName,
'.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ;
foreach($Config['ConfigAllowedTypes'] as $type) {
// #PATCH: automatically dispatch uploaded files
if($type != 'File' && in_array($sExtension,
$Config['AllowedExtensions'][$type])) {
$resourceType = $type;
}
}
// Map the virtual path to the local server path. #PATCH:
moved down
$sServerDir = ServerMapFolder( $resourceType,
$currentFolder, $sCommand ) ; // #HACK: original line moved down
if ( isset( $Config['SecureImageUploads'] ) )
{
if ( ( $isImageValid = IsImageValid(
$oFile['tmp_name'], $sExtension ) ) === false )
{
$sErrorNumber = '202' ;
}
}
}}}
filemanager…config.php sample:
{{{
// Allowed Resource Types.
$Config['ConfigAllowedTypes'] = array('File', 'Image', 'Flash', 'Media',
'PDF') ;
…
$Config['AllowedExtensions']['File'] = array('7z', 'csv', 'doc', 'gz',
'gzip', 'ods', 'odt', 'ppt', 'pxd', 'rar', 'rtf', 'sdc', 'sitd', 'sxc',
'sxw', 'tar', 'tgz', 'txt', 'vsd', 'xls', 'xml', 'zip') ;
$Config['DeniedExtensions']['File'] = array() ;
$Config['FileTypesPath']['File'] = $Config['UserFilesPath'] .
'misc/' ;
…
$Config['AllowedExtensions']['Image'] =
array('bmp','gif','jpeg','jpg','png') ;
$Config['DeniedExtensions']['Image'] = array() ;
$Config['FileTypesPath']['Image'] = $Config['UserFilesPath'] .
'images/' ;
…
$Config['AllowedExtensions']['Flash'] = array('swf','fla', 'flv') ;
$Config['DeniedExtensions']['Flash'] = array() ;
$Config['FileTypesPath']['Flash'] = $Config['UserFilesPath'] .
'flash/' ;
…
$Config['AllowedExtensions']['Media'] = array('aiff', 'asf', 'avi',
'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'qt', 'ram', 'rm',
'rmi', 'rmvb', 'tif', 'tiff', 'wav', 'wma', 'wmv') ;
$Config['DeniedExtensions']['Media'] = array() ;
$Config['FileTypesPath']['Media'] = $Config['UserFilesPath'] .
'media/' ;
…
$Config['AllowedExtensions']['PDF'] = array('pdf') ;
$Config['DeniedExtensions']['PDF'] = array() ;
$Config['FileTypesPath']['PDF'] = $Config['UserFilesPath'] .
'pdf/' ;
}}}
--
Ticket URL: <http://dev.fckeditor.net/ticket/2622>
FCKeditor <http://www.fckeditor.net/>
The text editor for Internet
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
FCKeditor-Trac mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fckeditor-trac