Пример #1
0
 /**
  * 将需要的文件复制到压缩目录下
  *
  * @param object $info
  * @param String $dir
  * @return Boolean
  */
 public function zipProcessFile($info, $dir)
 {
     //import("@.Browse.Object");
     import("@.File.FileLog");
     //$info = Object::isUserAuthorized($objid,"view");
     if (!$info || $info['object_type'] != 2) {
         return false;
     }
     $objid = $info['id'];
     $userid = $info['userid'];
     $fileName = $info['name'];
     $version = $info['version'];
     $filehDao = new File_historyDao();
     $vo = $filehDao->find("objectid={$objid} and version={$version}", null, "id,md5sum");
     if (!$vo) {
         return false;
     }
     $filePath = Tools::getStoragePath(DATA_DIR, $vo->id);
     if (md5_file($filePath) != $vo->md5sum) {
         FileLog::logEvent('OBJ_CHECKSUM_VERIFY_FAIL', $objid, null, $userid);
         return false;
     }
     if (Session::is_set('CLAMAV_SUPPORT')) {
         $r = Tools::clamAvScan(stripslashes($filePath));
         if ($r === FALSE) {
             FileLog::logEvent('OBJ_VIRUS_ERROR', $objid, null, $userid);
         } elseif ($r == "clean") {
             FileLog::logEvent('OBJ_VIRUS_PASS', $objid, null, $userid);
         } else {
             FileLog::logEvent('OBJ_VIRUS_FAIL', $objid, null, $userid);
             return false;
         }
     }
     $fileName = Tools::convertCharset($fileName);
     $destFileName = "{$dir}/{$fileName}";
     @copy($filePath, $destFileName);
     FileLog::logEvent('OBJ_VIEWED', $objid, null, $userid);
     return true;
 }