View file ViPTurbo 3.0/files/upload.php

File size: 13.63Kb
<?
include('../include/path.php');

if($config["accload"]==1 || ($rank&255)==255){

if($config["accloadreg"]!=1 || isset($user)){

if(isset($_GET['c']) && !preg_match('/[^0-9]/',$_GET['c'])){
 if($result=sql_query('SELECT cat_parent_id,cat_name,file_max_size,auth_upload,files_exp FROM `'.PRE.'dc_categories` WHERE cat_id='.$_GET['c'])){
  if($row=mysql_fetch_assoc($result)){
   $cat=$row;
   $cat['id']=$_GET['c'];
  }
 }
}

if(isset($cat)){

if(($rank&$cat['auth_upload'])==$cat['auth_upload']){

$demo_max_size=100; // максимальный вес демо-картинки в КБ
// Получить типы, допущенные к загрузке
function get_types($ctype,$selected){
    
    $i=0;
    foreach($ctype as $key=>$value){
        if(($selected&pow(2,$i))==pow(2,$i)){ $tmp1[]=$key;}
        $tmp2[]=$key;
        $i++;
    }
   
    if(isset($tmp1)){ return $tmp1; }
  return $tmp2;
}

//получить имя по дефолту
function get_name($exp){
global $path;

if($handle=opendir($path.'/files/'.$exp.'/')) {
  $id=0;
  while(false!==($file=readdir($handle))) {
       if($file!='.' && $file!='..') {
       
       if(preg_match('/file[0-9]+\.'.$exp.'/',$file)){   
         
         preg_match('/[0-9]+/',$file,$number);
         
         if($number[0]>$id){ $id=$number[0]; }
         
         } 
         
       }
  }
  closedir($handle);
}
return 'file'.++$id;
}
                 

//-----------Загрузка Java--------------------------------------------------------------------------------------
function UploadFiles($files){

    global $path,$user,$cat,$demo_max_size;
    
      require($path.'/manage/ctype.php');
    
      if(is_uploaded_file($files['tmp_name'][0])) {
       
       $part=explode('.',StrToLow($files['name'][0])); 
       
       if(sizeof($part)>1){
         $exp[0]=array_pop($part);
         $exp[0]=($exp[0]=='jpeg')?'jpg':$exp[0];
         $name[0]=implode($part);
       
       //if(count($part)==2) { 
         
         //   $name[0]=$part[0];
         //   $exp[0]=($part[1]=='jpeg')?'jpg':$part[1];

            $tmp_type=get_types($ctype,$cat['files_exp']);
            
            if(isset($ctype) && in_array($exp[0],$tmp_type)) {
                  
            if(!is_dir($path.'/files/'.$exp[0])){ mkdir($path.'/files/'.$exp[0],0770); }            
            
            if(preg_match('/[^a-z0-9\._-]/',$name[0]) || file_exists($path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[0])) {  
              
              $name[0]=get_name($exp[0]);
            
            }
            
            $fsize=filesize($files['tmp_name'][0]);
            
            if($fsize<=$cat['file_max_size']) { 
            
            if(move_uploaded_file($files['tmp_name'][0],$path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[0])) {
             
             if(isset($_POST['title']) && $_POST['title']!='') { 
                
                $title=filtr($_POST['title']);
                                
             } else { $title=$name[0]; $error[]='- Название отсутствует или содержит недопустимые символы. Присвоено название по умолчанию<br>'; }
               
             $desc=(isset($_POST['desc']))?filtr($_POST['desc']):'';

             if(!sql_query("INSERT INTO `".PRE."dc_files` (cat_id,user,file_name,file_exp,file_title,file_description,file_size,file_date,com_perpage) VALUES (".$cat['id'].",'".((isset($user))?$user['login']:'Гость')."','".$name[0]."','".$exp[0]."','".$title."','".$desc."',".filesize($path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[0]).",NOW(),10)")){ $error[]='- Файл не добавлен в БД<br>'.mysql_error().'<br><br>'; }
             

             if($exp[0]=='jar'){ getJAD($path.'/files/jar/',$name[0]); }
             
             $error[]='- Файл '.$name[0].'.'.$exp[0].' успешно загружен<br>';

         
             if(is_uploaded_file($files['tmp_name'][1])) { 

               if(!preview($exp[0])){
              
                $part=explode('.',StrToLow($files['name'][1])); 
                
                if(count($part)==2) { 

                  $part[1]=($part[1]=='jpeg')?'jpg':$part[1];
                  
                  if($part[1]=='gif' || $part[1]=='jpg' || $part[1]=='png'){
                  
                     $exp[1]=$part[1];
                     
                    $fsize=round(filesize($files['tmp_name'][1])/1024);
                     
                    if($fsize<=$demo_max_size){
                    
                     if(!is_dir($path.'/files/thumbnails/'.$exp[0])){ mkdir($path.'/files/thumbnails/'.$exp[0],0770); }
                     
                     if(move_uploaded_file($files['tmp_name'][1],$path.'/files/thumbnails/'.$exp[0].'/'.$name[0].'.'.$exp[1])) {
                     
                       $error[]='- Файл '.$name[0].'.'.$exp[1].' успешно загружен<br>';
                     
                     } else { $error[]='- Ошибка при перемещении файла Demo-картинки<br>'; }
                  
                    } else { $error[]='- Demo-картинка должна быть не более '.$demo_max_size.' KB<br>'; } 
                  
                  } else { $error[]='- Недопустимый тип Demo-картинки<br>'; }
                  
                } else { $error[]='- Имя файла Demo-картинки должно содержать только одну точку перед расширением<br>'; }
  
               } else { $error[]='- Невозможно добавить Demo для картинки<br>'; }
               
             }
                      
             } else { $error[]='- Ошибка при перемещении файла '.$name[0].'.'.$exp[0].'<br>'; }
            
           } else { $error[]='- Файл не должен быть не более '.round($cat['file_max_size']/1024).' KB<br>'; } 
           
           }else{  $error[]='- Такой формат файлов запрещен к загрузке<br>'; }
         
         }else{ $error[]='- Неизвестный формат файла<br>'; } 
        
   }else{  $error[]='- Ошибка при загрузке файла<br>'; }
  
  return array_unique($error);  
}
//-----------------------------------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------------------------------------
function mOperaUploadFiles($files){

  global $path,$user,$cat,$demo_max_size;

  require($path.'/manage/ctype.php');

  $array[0]=explode('file=',$files[0]);
  
  $part[0]=explode('.',StrToLow($array[0][0]));
  
  if(sizeof($part)>1){

    $exp[0]=array_pop($part);
    $exp[0]=($exp[0]=='jpeg')?'jpg':$exp[0];
    $name[0]=implode($part);
  //if(count($part[0])==2) {
  
    //$name[0]=$part[0][0];
    
    //$exp[0]=($part[0][1]=='jpeg')?'jpg':$part[0][1];

    $tmp_type=get_types($ctype,$cat['files_exp']);
    
    if(isset($ctype) && in_array($exp[0],$tmp_type)) {
    
      if(!is_dir($path.'/files/'.$exp[0])){ mkdir($path.'/files/'.$exp[0],0770); }            

      if(preg_match('/[^a-z0-9_-]/',$name[0]) || file_exists($path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[0])) {  $name[0]=get_name($exp[0]); }

       if(strlen($array[0][1])<=$cat['file_max_size']){
        
        $fdata=base64_decode($array[0][1]);

        $fp=fopen($path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[0],"w");
      
        fwrite($fp,$fdata);
      
        fclose($fp);

        
             if(isset($_POST['title']) && $_POST['title']!='') { 

                $title=filtr($_POST['title']);
                                
             } else { $title=$name[0]; $error[]='- Название отсутствует или содержит недопустимые символы. Присвоено название по умолчанию<br>'; }
               
             $desc=(isset($_POST['desc']) && preg_match('/^.{1,1024}$/iuD',$_POST['desc']))?filtr($_POST['desc']):'';
  
             if(!sql_query("INSERT INTO `".PRE."dc_files` (cat_id,user,file_name,file_exp,file_title,file_description,file_size,file_date) VALUES (".$cat['id'].",".((isset($user))?$user['login']:'Гость').",'".$name[0]."','".$exp[0]."','".addslashes($title)."','".addslashes($desc)."',".filesize($path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[0]).",NOW())")){ $error[]='- Файл не добавлен в БД<br>'.mysql_error().'<br><br>'; }
            

        if($exp[0]=='jar'){ getJAD($path.'/files/jar/',$name[0]); }
             
        $error[]='- Файл '.$name[0].'.'.$exp[0].' загружен<br><br>';


// Обработка загрузки DEMO-картинки

        $array[1]=explode('file=',$files[1]);
  
        $part[1]=explode('.',StrToLow($array[1][0]));
  
        if(count($part[1])==2) {

            $part[1][1]=($part[1][1]=='jpeg')?'jpg':$part[1][1];
        
            if($part[1][1]=='gif' || $part[1][1]=='jpg'){
        
               $exp[1]=$part[1][1];

               if(round(strlen($array[1][1])/1024)<=$demo_max_size){     
               
                  $fdata=base64_decode($array[1][1]);
                  
                  if(!is_dir($path.'/files/thumbnails/'.$exp[0])){ mkdir($path.'/files/thumbnails/'.$exp[0],0770); }
                  $fp=fopen($path.'/files/'.$exp[0].'/'.$name[0].'.'.$exp[1],'w');
      
                  fwrite($fp,$fdata);

                  fclose($fp);
                  
                  $error[]='- Demo-картинка загружена<br>';
               
               } else { $error[]='- Demo-картинка должна быть не более '.$demo_max_size.' KB<br>'; }

            } else { $error[]='- Недопустимый тип Demo-картинки<br>'; }
        
        } else { $error[]='- Имя файла Demo-картинки содержит более одной точки перед расширением<br>'; }
        
      }else{ $error[]='- Файл должнен быть не более '.round($cat['file_max_size']/1024).' KB<br>'; }

    } else { $error[]='- Недопустимое расширение файла.<br>В настоящее время к загрузке доступны файлы с расширением '.implode(', ',array_keys($ctype)); }  
  
  } else { $error[]='- Неизвестный формат файла<br>'; }

return $error;
}


if(!stristr($_SERVER["HTTP_USER_AGENT"],'opera mini')){

   if(isset($_FILES['file'])){

     $error=UploadFiles($_FILES['file']);
   }

}else{

    if(isset($_POST['file'])) {

       $error=mOperaUploadFiles($_POST['file']);
    }
}
//---------------------------------------------------

function put_content() {
global $error,$path,$cat;
echo '<div class="title">Файлобменник</div>';
 
if(isset($error)) { echo implode($error); }

echo '<div class="header">'.$cat['cat_name'].'</div>';

if(file_exists($path.'/manage/ctype.php')) { 
    include($path.'/manage/ctype.php');
} 

if(isset($ctype) && $tmp=get_types($ctype,$cat['files_exp'])){
  
   echo 'Типы файлов: ';
   foreach($tmp as $value){ echo $value.' '; }
   echo '<br>';
}

echo 'Максимальный размер: '.($cat['file_max_size']/1024).' KB<br>';

echo'* - обязательные поля';

//-----Форма загрузки----------------------------------
echo'<form action="upload.php?c='.$cat['id'].'&amp;'.SID.'" enctype="multipart/form-data" method="post"><br>';
   

    echo'*Файл<br><input type="file" name="file[]"><br>';
    echo'Название [1-255]:<br><input type="text" maxlength="255" name="title" class="text" value=""><br>';
    echo'Demo-картинка:<br><input type="file" name="file[]"><br>';
    echo'Описание [1-1024]:<br><textarea maxlength="1024" name="desc" class="text"></textarea><br>';

echo'<input type="submit" class="button" value="Загрузить">';
echo'</form>';
//------------------------------------------------------
echo '<div class="nav">';

echo'<a href="index.php?c='.$cat['id'].'&amp;'.SID.'">назад</a><br>';

echo '<a href="../?'.SID.'">на главную</a>';
echo '</div>';
}


}else{
   $link = '1; URL=index.php?'.SID;

         function put_content() {
                  echo '- Вы не можете загружать файлы в этот каталог<br><br>';
                  echo '<a href="index.php?'.SID.'">далее...</a>';
                  }
}

}else{
       function put_content() {
             echo '- Загрузка файлов невозможна!<br>';
             echo '<div class="nav">';
             echo '<a href="../?'.SID.'">на главную</a>';
             echo '</div>';
           }
}

} else {
         $link = '10; URL=../?'.SID;
         function put_content() {
                  echo '- Доступ запрещен незарегистрированным пользователям<br><br>';
                  echo '<a href="../?'.SID.'">далее...</a>';
                  }
       }
    
} else {
         $link = '10; URL=../?'.SID;
         function put_content() {
                  echo '- Доступ запрещен администрацией сайта<br><br>';
                  echo '<a href="../?'.SID.'">далее...</a>';
                  }
       }

// подключение дизайна
design();?>