提取编码为Zip PHP的Base64
我无法提取从提取编码为Zip PHP的Base64,php,zip,base64,decode,encode,Php,Zip,Base64,Decode,Encode,我无法提取从base64数据创建的zip文件 这是我的剧本 <? $basedata = base64_decode($data['data']); $f = fopen ("c:/xampp/htdocs/sms/basedata/data.zip","x+"); fwrite($f, $basedata); fclose($f); $zip = new ZipArchive(); $res = $zip->open('c:/xampp/htdocs/sms/basedat
base64
数据创建的zip文件
这是我的剧本
<?
$basedata = base64_decode($data['data']);
$f = fopen ("c:/xampp/htdocs/sms/basedata/data.zip","x+");
fwrite($f, $basedata);
fclose($f);
$zip = new ZipArchive();
$res = $zip->open('c:/xampp/htdocs/sms/basedata/data.zip');
if ($res === TRUE) {
// extract it to the path we determined above
$zip->extractTo("c:/xampp/htdocs/sms/basedata/extracted");
$zip->close();
echo "Success!";
} else {
echo "Failed!";
}
}
?>
首先,我通过fopen
和fwrite
命令创建zip
文件
然后创建Zip文件这个zip文件的内容是名为data的文件,这个文件实际上是
xml
file此
xml
数据来自解码的base64数据,然后编码为zip
当我想用$res=$zip->open('c:/xampp/htdocs/sms/basedata/data.zip')提取zip文件时代码>命令,它无法运行,因为zip文件实际上不是zip存档文件
我认为PHP只能读取zip归档文件,而不能读取编码为zip的文件
有人能帮我吗?使用功能:
$basedata = base64_decode($data['data']);
$zip = new ZipArchive;
$res = $zip->open('c:/xampp/htdocs/sms/basedata/data.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('basedata.txt', $basedata);
$zip->extractTo("c:/xampp/htdocs/sms/basedata/extracted");
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
ZipArchive
,您可以使用它来压缩;并且不要自动压缩文件,因此您创建的文件不是有效的压缩文件。