###わからないこと
いつもお世話になっております。
この度、phpでzipファイルを作成し、それを解凍しようとしたのですが、できませんでした。
異なるディレクトリ内に保存したファイルを別のディレクトリにzipで固めたものを解凍しようとしたのですが、原因の解消方法を見つけることができません。
ご教授いただければ幸いです。
php
1$zip = new ZipArchive(); 2$fileNameId = 5555; 3$fileName = $fileNameId.'.zip'; 4$filePath = storage_path("app/public/history/{$fileName}"); 5$cvPath = public_path("img/career_paper/cv/{$fileNameId}"); 6$res = $zip->open($filePath, ZipArchive::CREATE); 7if ($res === true) { 8if(file_exists($cvPath)) { 9 foreach(glob($cvPath.'/*') as $cvFile) { 10 if(is_file($cvFile)) { 11 $zip->addFile($cvFile, $cvFile); 12 } 13 } 14 $zip->close(); 15} 16}
よろしくお願いいたします。
##解決方法
tacsheaven様のアドバイスから解決方法を見つけることができましたので、下記に記載いたします。同じようにお困りのかたに参考になれば幸いです。
追加コード含め前後のコード
foreach(glob($cvPath.'/*') as $cvFile) { if(is_file($cvFile)) { $name = basename($cvFile, PATHINFO_BASENAME); $zip->addFile($cvFile, $name); } }
上記のようにファイル名を含んだパスからファイル名のみを抜き出し(「basename($cvFile, PATHINFO_BASENAME);」にあたります)、その名前でzipファイルに保存するという処理を書き加えれば、そのzipファイルが解凍できないという問題を解決することができます。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/29 10:32
2018/01/29 15:27
退会済みユーザー
2018/01/30 00:22
退会済みユーザー
2018/01/30 01:22