當前位置: 首頁>>代碼示例>>PHP>>正文


PHP CUtils::output方法代碼示例

本文整理匯總了PHP中CUtils::output方法的典型用法代碼示例。如果您正苦於以下問題:PHP CUtils::output方法的具體用法?PHP CUtils::output怎麽用?PHP CUtils::output使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在CUtils的用法示例。


在下文中一共展示了CUtils::output方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: downloadToPackage


//.........這裏部分代碼省略.........
     }
     if (count($fileNames) > 1) {
         $packageName = 'miniyun';
     } else {
         $packageName = $fileNames[0];
     }
     //創建臨時文件夾
     $fileSystem = new CFileSystem();
     MUtils::MkDirsLocal(DOCUMENT_TEMP . $userId);
     $storePath = DOCUMENT_TEMP . $userId . "/" . $packageName;
     $array = array();
     $ids = explode(",", $code);
     foreach ($ids as $id) {
         $file = MiniFile::getInstance()->getById($id);
         if (empty($file)) {
             continue;
         }
         if ($file["file_type"] == MConst::OBJECT_TYPE_FILE) {
             //屬於自己的文件
             $array[] = $file;
         } else {
             //不屬於自己的文件
             //查詢共有多少個子目錄
             $array[] = $file;
             $files = MiniFile::getInstance()->getChildrenByPath($file["file_path"]);
             $array = array_merge($array, $files);
         }
     }
     if (count($array) > $limitCount) {
         echo "批量下載單次最大文件數不能超過:" . $limitCount;
         exit;
     }
     $size = $this->calculateSize($array);
     if ($size > $limitSize * 1024 * 1024) {
         echo "批量下載單次最大文件大小不能超過:" . $limitSize . "M";
         exit;
     }
     $path = CUtils::removeUserFromPath($array[0]["file_path"]);
     $removeParent = pathinfo($path, PATHINFO_DIRNAME);
     if (strlen($removeParent) == 1) {
         $removeParent = "";
     }
     //zip壓縮
     $zip = new ZipArchive();
     $zipFile = $storePath . ".zip";
     //刪除上次存在的壓縮文件
     $fileSystem->delete($zipFile);
     try {
         $zipFile = mb_convert_encoding($zipFile, "gb2312", "UTF-8");
     } catch (Exception $e) {
         $zipFile = $zipFile;
     }
     if ($zip->open($zipFile, ZIPARCHIVE::OVERWRITE) === TRUE) {
         //執行拷貝操作
         foreach ($array as $file) {
             $fileType = $file["file_type"];
             $filePath = $file["file_path"];
             //獲取存儲文件的絕對路徑
             if (!empty($removeParent)) {
                 $relativePath = CUtils::str_replace_once($removeParent, "", CUtils::removeUserFromPath($filePath));
             } else {
                 $relativePath = CUtils::removeUserFromPath($filePath);
             }
             //打包加上nick
             $relativePath = $packageName . $relativePath;
             //轉換文件編碼為中文編碼
             try {
                 $store = mb_convert_encoding($relativePath, "gb2312", "UTF-8");
             } catch (Exception $e) {
                 $store = $relativePath;
             }
             $hasRead = true;
             if ($userId == $file["user_id"] && $fileType == MConst::OBJECT_TYPE_FILE) {
                 //屬於自己的文件
                 $this->addToFile($zip, $file, $store, $fileSystem);
             } elseif ($userId != $file["user_id"] && $fileType == MConst::OBJECT_TYPE_FILE) {
                 //不屬於自己的文件
                 if ($hasRead) {
                     $this->addToFile($zip, $file, $store, $fileSystem);
                 }
             } elseif ($userId == $file["user_id"] && $fileType == MConst::OBJECT_TYPE_DIRECTORY) {
                 //屬於自己的文件夾
                 $this->addToFolder($zip, $store);
             } else {
                 //不屬於自己的文件夾
                 if ($hasRead) {
                     $this->addToFolder($zip, $store);
                 }
             }
         }
         $zip->close();
         //關閉
     }
     if (!file_exists($zipFile)) {
         echo Yii::t('i18n', 'no_privilege');
         Yii::app()->end();
     }
     //進行下載
     CUtils::output($zipFile, "application/octet-stream", $packageName . ".zip");
 }
開發者ID:youngsun45,項目名稱:miniyun,代碼行數:101,代碼來源:FileBiz.php


注:本文中的CUtils::output方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。