簡體   English   中英

從目錄中的ZIP讀取單個文件

[英]Read single file from ZIP within a directory

我有一個ZIP文件(帶有VPK擴展名),我希望提取一個壓縮文件目錄中的文件。 上傳的文件正確上傳。 這是我當前的代碼。 但不幸的是,它引發了一個錯誤。

$hbid =  substr(md5(time()),0,16);
mkdir("pkg/".$hbid, 0700);
mkdir("pkg_image/".$hbid, 0700);
$target_dir = "pkg/" . $hbid . "/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
...
FILE UPLOADING CODE HERE
...

ERROR -> $handle = fopen('zip://./'.$target_file.'#/sce_sys/icon0.png', 'r'); 

$result = '';
if($handle){
while (!feof($handle)) {
  $result .= fread($handle, 8192);
}
fclose($handle);
$file = fopen("pkg_image/".$hbid."/icon0.png");
fwrite($file,$result);
fclose($file);

錯誤代碼是這樣的:

fopen(zip://./pkg/0152cc9c0c52da70/4rows_1_1.vpk#/sce_sys/icon0.png): failed to open stream: operation failed

我以前從未以這種方式提取過文件,但是查看與此相關的其他答案,它們都從zip的根目錄中提取了一個文件,但是我需要的文件位於zip文件的子目錄中。 我不確定自己在做什么錯。

謝謝。

弄清楚了。 糾正措施是將/ sce_sys替換為#sce_sys。 目錄不需要首字母/。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM