こんにちは、画像ファイルのアップロードに制限を追加したいと思います。たとえば、FCK Editor で 500Kb 以上です。
そのため、FCK edior アップロード スクリプトには、必要なファイルがいくつか含まれています。
require('./config.php') ;
require('./util.php') ;
require('./io.php') ;
require('./commands.php') ;
require('./phpcompat.php') ;
ファイルサイズはcommands.phpファイルで計算され、その変数を(関数(commands.php)内から)取得して、制限サイズを破るかどうかをテストできると思いました)
まだupload.phpにあるので、require includeの下にこのスニペットがあります:
$limit_size = 512000;
if ( $GLOBALS['myFileSize'] >= $limit_size ) {
SendUploadResults( 1, '', '', ''. $GLOBALS['myFileSize'].'' ) ;
}
したがって、commands.php ファイル内の関数は次のとおりです。
function GetFoldersAndFiles( $resourceType, $currentFolder )
{
global $iFileSize;
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFoldersAndFiles' ) ;
// Arrays that will hold the folders and files names.
$aFolders = array() ;
$aFiles = array() ;
$oCurrentFolder = @opendir( $sServerDir ) ;
if ($oCurrentFolder !== false)
{
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' )
{
if ( is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
else
{
$iFileSize = @filesize( $sServerDir . $sFile ) ;
if ( !$iFileSize ) {
$iFileSize = 0 ;
$GLOBALS['myFileSize'] = $iFileSize;
}
if ( $iFileSize > 0 )
{
$iFileSize = round( $iFileSize / 1024 ) ;
if ( $iFileSize < 1 )
$iFileSize = 1 ;
global $myFileSize;
$GLOBALS['myFileSize'] = $iFileSize;
}
$aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
}
closedir( $oCurrentFolder ) ;
}
// Send the folders
natcasesort( $aFolders ) ;
echo '<Folders>' ;
foreach ( $aFolders as $sFolder )
echo $sFolder ;
echo '</Folders>' ;
// Send the files
natcasesort( $aFiles ) ;
echo '<Files>' ;
foreach ( $aFiles as $sFiles )
echo $sFiles ;
echo '</Files>' ;
}
私はこれに近づいていますよね?ファイルサイズの値を取得できると考えています (グローバル変数にしようとしてめちゃくちゃになりました?? ($GLOBALS[myFileSize])、それを IF ステートメントで使用して、FileSize > limit_size かどうかを確認します???
ありがとう