laravel從入門到精通之 文件處理 壓縮/解壓zip

1:將此軟件包添加到所需軟件包列表中composer.json

"chumper/zipper": "1.0.x"

2:命令行執行

composer update

3:配置app/config/app.php

add to providers Chumper\Zipper\ZipperServiceProvider::class
add to aliases 'Zipper' => Chumper\Zipper\Zipper::class

4:遍歷文件打包至壓縮包

$files = Array();
        foreach ($student as $key => $data) {
            if ($data->photopath != null) {
                $check = glob(storage_path('photo/' . $data->photopath));
                $files = array_merge($files, $check);
            }
        }
 Zipper::make(storage_path() . '/systemImg/' . $name)->add($files)->close();

5:讀取壓縮包文件

   Zipper::make( storage_path() . '/photo/photos')->extractTo(storage_path('temp'));
  $zip = new \ZipArchive();//方法2:流處理,新建一個ZipArchive的對象
                $logFiles = Zipper::make($path)->listFiles('/\.png$/i');
                if ($zip->open($path) === TRUE) {
                    foreach ($logFiles as $key) {
                        $stream = $zip->getStream($key);
                        $str = stream_get_contents($stream); //這裏注意獲取到的文本編碼
                        $name = iconv("utf-8", "gb2312//IGNORE", $key);
                        file_put_contents(storage_path() . '\temp\\' . $name, $str);
                    }
                } else {
                    return '{"statusCode":"300", "message":"上傳失敗,請檢查照片"}';
                }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章