axedMedlem sedan nov. 200136 inlägg Har testad denna kodsnutt från php.net's sida:
$zip = zip_open("test.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
Men får följande fel?
Warning: zip_read() expects parameter 1 to be resource, integer given in C:\www\ziptest.php on line 6
Warning: zip_close() expects parameter 1 to be resource, integer given in C:\www\ziptest.php on line 23
test.zip ligger i samma katalog som scriptet. Nån som har en aning?
axedMedlem sedan nov. 200136 inlägg Ok tack. Körde zipFileErrMsg($zip) och får meddelandet: Zip File Function error: Can't open file.
Varför??
colioneMedlem sedan juni 20014 421 inlägg Lösenordsskydd? Felaktig sökväg? Skadad fil?
Kan du öppna den vanligt själv?
axedMedlem sedan nov. 200136 inlägg test.zip ligger i samma katalog som scriptet så sökvägen borde väl vara rätt? Inte lösenordskyddad och jag kan öppna den i t ex winzip/winrar så skadad är den knappast heller.
stevenetMedlem sedan juni 20001 251 inlägg http://se2.php.net/is_readable
<?php
$filename = 'test.zip';
if (is_readable($filename)) {
echo 'Filen är läsbar.';
} else {
echo 'Filen är inte läsbar.';
}
?>
axedMedlem sedan nov. 200136 inlägg Filen är läsbar får jag när jag testar med den funktionen. Nån inställning som kan strula till det?
stevenetMedlem sedan juni 20001 251 inlägg Har du php_zip.dll aktiverad i php.ini?
Enligt min erfarenhet kan det hända att ett zip-program kan läsa en fil när ett annat går bet. Kan du testa din kod på en annan zip-fil?
axedMedlem sedan nov. 200136 inlägg Det funkar inte. Hittade att man kan använda följande kod istället:
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
echo 'ok';
$zip->extractTo('test/zip');
$zip->close();
}
else {
echo 'failed, code:' . $res;
}
Någon nackdel med detta?
Nej, inte i princip. OO i stället för procedurellt. För min del hade det varit förstahandsvalet.
axedMedlem sedan nov. 200136 inlägg Ok då kör jag på det istället. Tack alla.