PHP 8.1.7 上で Laravel 9 を実行している Docker コンテナ アプリケーションで zip アーカイブを抽出しようとしていますが、奇妙なエラーが発生します。
したがって、コントローラーでこのコードを試してみると
リーリーアーカイブ内のファイルは正しく抽出されましたが、次のエラーが返されました:
エラー例外 ZipArchive::extractTo(/var/www/html/public/my_folder/my_file.xml): 操作が失敗しました: 操作は許可されていません
同じコードを phpArtisantinker で実行すると、機能します。
この問題の解決策を持っている人はいますか?
アクセス許可関連の問題ではないようです。フォルダーは 777 アクセス許可で作成され、ファイルは正しくコピーされます。
######編集###### リーリー ###ありがとう###
まったく同じ問題に遭遇しました。私の場合、Windows インストールのディレクトリからファイルを抽出していたために、この問題が発生しました。
つまり、
/var//html/public/my_folder
は、Windows からの/mnt/dev/my_folder
へのシンボリック リンクです (C: 例: \dev \my_folder)
)。Linux や Windows とはファイル システムが異なるため、ZipArchive クラスの特定の何かがこのエラーの原因となっているようです。
この問題は、
リーリー ###お役に立てれば。/tmp/my_folder
内のファイルを抽出し、/var//html/public/my_folder
に移動することで修正しました。