<?php
header("Content-type:text/html;charset=utf-8");
?>
<?php 
function GetFolders( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; // Array that will hold the folders names.
$aFolders = array() ; $oCurrentFolder = opendir( $sServerDir ) ; while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
} closedir( $oCurrentFolder ) ; // Open the "Folders" node.
echo "<Folders>" ;

natcasesort( $aFolders ) ;
foreach ( $aFolders as $sFolder )
echo $sFolder ; // Close the "Folders" node.
echo "</Folders>" ;
}function GetFoldersAndFiles( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; // Arrays that will hold the folders and files names.
$aFolders = array() ;
$aFiles = array() ; $oCurrentFolder = opendir( $sServerDir ) ; while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' )
{
if ( is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
else
{
$iFileSize = filesize( $sServerDir . $sFile ) ;
if ( $iFileSize > 0 )
{
$iFileSize = round( $iFileSize / 1024 ) ;
if ( $iFileSize < 1 ) $iFileSize = 1 ;
} $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
} // 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>' ;
}function CreateFolder( $resourceType, $currentFolder )
{
$sErrorNumber = '0' ;
$sErrorMsg = '' ; if ( isset( $_GET['NewFolderName'] ) )
{
$sNewFolderName = $_GET['NewFolderName'] ; if ( strpos( $sNewFolderName, '..' ) !== FALSE )
$sErrorNumber = '102' ; // Invalid folder name.
else
{
// Map the virtual path to the local server path of the current folder.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; if ( is_writable( $sServerDir ) )
{
$sServerDir .= $sNewFolderName ; $sErrorMsg = CreateServerFolder( $sServerDir ) ; switch ( $sErrorMsg )
{
case '' :
$sErrorNumber = '0' ;
break ;
case 'Invalid argument' :
case 'No such file or directory' :
$sErrorNumber = '102' ; // Path too long.
break ;
default :
$sErrorNumber = '110' ;
break ;
}
}
//加入
if($_POST['C1']=="ON")
{
$water=1;      //是否附加水印(1为加水印,其他为不加水印);
}
else
{
$water=2;
}if($_POST['R1']=="V1")
{
$watertype=1;      //水印类型(1为文字,2为图片)
}
else
{
$watertype=2;
}if($_POST['T1']=="")
{
$waterstring="发表于www.woqie.com"; //水印字符串
}
else
{
$waterstring=$_POST['T1'];
}
$waterimg="woqie.png";    //水印图片
if($water==1)
    {
        $image_size = getimagesize($sFilePath);
   $iinfo=getimagesize($sFilePath,$iinfo);
        $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
        $white=imagecolorallocate($nimage,255,255,255);
        $black=imagecolorallocate($nimage,0,0,0);
        $red=imagecolorallocate($nimage,255,0,0);
        imagefill($nimage,0,0,$white);
        switch ($iinfo[2])
        {
            case 1:
            $simage =imagecreatefromgif($sFilePath);
            break;
            case 2:
            $simage =imagecreatefromjpeg($sFilePath);
            break;
            case 3:
            $simage =imagecreatefrompng($sFilePath);
            break;
//            case 6:
//            $simage =imagecreatefromwbmp($sFilePath);
//            break;
            default:
            die("不支持的文件类型");
            exit;
        }        imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
        imagefilledrectangle($nimage,1,$image_size[1]-15,0,$image_size[1],$white);        switch($watertype)
        {
            case 1:   //加水印字符串
            imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$white);
            break;
            case 2:   //加水印图片
            $simage1 =imagecreatefromgif($waterimg);
            imagecopy($nimage,$simage1,0,0,0,0,85,30);
            imagedestroy($simage1);
            break;
        }        switch ($iinfo[2])
        {
            case 1:
            imagegif($nimage, $sFilePath);
//            imagejpeg($nimage, $sFilePath);
            break;
            case 2:
            imagejpeg($nimage, $sFilePath);
            break;
            case 3:
            imagepng($nimage, $sFilePath);
            break;
//            case 6:
//            imagewbmp($nimage, $sFilePath);
//            //imagejpeg($nimage, $sFilePath);
//            break;
        }        //覆盖原上传文件
        imagedestroy($nimage);
        imagedestroy($simage);
    }
else
$sErrorNumber = '103' ;
}
}
else
$sErrorNumber = '102' ; // Create the "Error" node.
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
}function FileUpload( $resourceType, $currentFolder )
{
$sErrorNumber = '0' ;
$sFileName = '' ; 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 ) ; // Get the uploaded file name.
$sFileName = $oFile['name'] ;

// Replace dots in the name with underscores (only one dot can be there... security issue).
if ( $Config['ForceSingleExtension'] )
$sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ; $sOriginalFileName = $sFileName ; // Get the extension.
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ; $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 )
{
$sFilePath = $sServerDir . $sFileName ; if ( is_file( $sFilePath ) )
{
$iCounter++ ;
$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
$sErrorNumber = '201' ;
}
else
{
move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ; if ( is_file( $sFilePath ) )
{
$oldumask = umask(0) ;
chmod( $sFilePath, 0777 ) ;
umask( $oldumask ) ;
} break ;
}

}
else
$sErrorNumber = '202' ;
}
else
$sErrorNumber = '202' ; echo '<script type="text/javascript">' ;
echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;
echo '</script>' ;
exit ;
}
?>