Opened 18 years ago
Closed 18 years ago
#677 closed Bug (worksforme)
Char no usable in url can be use in filemanager (like é or ù)
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | File Browser | Version: | |
| Keywords: | SF Pending | Cc: |
Description
Hi,
The file manager accept file or folder with char who can't be read by a browser like "Canyon du Crêt de la Neige.jpg" so this file or folder can't be found on the web.
i modify some functions, CreateFolder() and FileUpload (), in commands.php file to convert this "bad" char into readable char
function CreateFolder( $resourceType, $currentFolder )
{
$sErrorNumber = '0' ;
$sErrorMsg = '' ;
if ( isset( $_GET['NewFolderName'] ) )
{
$sNewFolderName = $_GET['NewFolderName'] ;
// BEGIN OF CHANGE
$sNewFolderName= strtr
($sNewFolderName,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöø
ÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooo
oooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
$sNewFolderName = preg_replace('([^_a-zA-Z0-9])', '_',
$sNewFolderName )."_";
$sNewFolderName = eregi_replace ('^(_)*', '',
$sNewFolderName);
$sNewFolderName = eregi_replace ('(_)*$', '',
$sNewFolderName);
$sNewFolderName = eregi_replace ('(_){2,10}', '_',
$sNewFolderName);
// END OF CHANGE
if ( strpos( $sNewFolderName, '..' ) !== FALSE )
$sErrorNumber = '102' ; // Invalid folder name.
else
{
function FileUpload( $resourceType, $currentFolder )
{
$sErrorNumber = '0' ;
$sFileName = '' ;
if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES
['NewFile']['tmp_name'] ) )
{
$oFile = $_FILES['NewFile'] ;
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType,
$currentFolder ) ;
// Get the uploaded file name.
$sFileName = $oFile['name'] ;
$sOriginalFileName = $sFileName ;
$sExtension = substr( $sFileName, ( strrpos
($sFileName, '.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ;
global $Config ;
$arAllowed = $Config['AllowedExtensions']
[$resourceType] ;
$arDenied = $Config['DeniedExtensions']
[$resourceType] ;
if ( ( count($arAllowed) == 0 || in_array( $sExtension,
$arAllowed ) ) && ( count($arDenied) == 0 || !in_array(
$sExtension, $arDenied ) ) )
{
$iCounter = 0 ;
while ( true )
{
// BEGIN OF CHANGE
$sFileName= strtr
($sFileName,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËè
éêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooo
oeeeeeeeecciiiiiiiiuuuuuuuuynn");
$sFileName = preg_replace('([^_a-zA-Z0-9\.])', '_',
$sFileName )."_";
$sFileName = eregi_replace ('^(_)*', '', $sFileName);
$sFileName = eregi_replace ('(_)*$', '', $sFileName);
$sFileName = eregi_replace ('(_){2,10}', '_',
$sFileName);
// END OF CHANGE
$sFilePath = $sServerDir . $sFileName ;
if ( is_file( $sFilePath ) )
Regards Sylvain B.
Moved from SF:
http://sourceforge.net/tracker/index.php?func=detail&aid=1325453&group_id=75348&atid=543653
Change History (3)
comment:1 Changed 18 years ago by
| Reporter: | changed from Martin Kou to sblanc74@… |
|---|
comment:2 Changed 18 years ago by
| Component: | General → File Browser |
|---|---|
| Keywords: | Pending added |

The current filemanager should encode properly those characters. Could you please try it?