Avatar billede Syska Mester
02. februar 2004 - 10:35 Der er 7 kommentarer og
1 løsning

Pakke flere filer med php

Hej Exp,

Jeg har brug for en funktion til at pakke nogle text filer med, som bliver gennereret af et script jeg har lavet, men kan finde nada om at pakke flere filer på en gang. Har også læst om nogle addons til php, men de kan kun læse fra pakkede filer.
Er der nogle der har link, eller noget relavant til hvordan det kan lade sig gøre hvis det kan lade sig gøre.....

// ouT
Avatar billede Slettet bruger
02. februar 2004 - 12:35 #1
Vil du pakke til Zip-filer?
Avatar billede Syska Mester
02. februar 2004 - 12:41 #2
Lige meget hvad det pakker til.... men har fundet en løsning, da det er en intern server bliver der bare brugt direkte shell access som så pakker det.... Men hvis du har en løsning der kan køre gennem php er jeg da meget interesseret...

Ved du hvad der findes af php ting til at lave thumbs nails af billeder?? ved der er ImageMagick men det virker ikke lige skide godt på min server.....

// ouT
Avatar billede Slettet bruger
02. februar 2004 - 13:08 #3
Hvis du finder zip.lib.php som er med i PHPMyAdmin er herunder et eksempel på hvordan man kan pakke. Dog skal du passe på hvis det er flere hundrede filer, da det tager noget tid for PHP at pakke filerne.

Mit forslag er at loope igennem filerne f.eks. 10 ad gangen.

<?
include("zip.lib.php");

$ffn = "test.jpg";
$handle = fopen ($ffn, "rb"); //at WIN32 "b" is important for binary data!!!
$data = fread($handle, filesize ($ffn));

$zipfile = new zipfile();
$zipfile -> addFile($data, "test.jpg");

header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=test.zip");
print $zipfile -> file();
?>
Avatar billede Syska Mester
02. februar 2004 - 13:28 #4
altså loope

$ffn = "test.jpg";
$handle = fopen ($ffn, "rb"); //at WIN32 "b" is important for binary data!!!
$data = fread($handle, filesize ($ffn));
$zipfile -> addFile($data, "test.jpg");

flere gange? selvf med forskellige filer??? så bliver de smidt i samme zip fil??
Avatar billede Slettet bruger
02. februar 2004 - 13:46 #5
Jeps...

Jeg er selv ved at teste lidt med at pakke + 8 MB billeder på serveren. Her er hvad jeg har lavet indtil nu, det er dog med en anden klasse, nemlig den der hedder pclzip.lib.php som kan hentes fra http://www.phpconcept.net/pclzip/

Iøvrigt skal man lige huske at rette

define( 'PCLZIP_TEMPORARY_DIR', $_SERVER['DOCUMENT_ROOT'] );

til det rigtige, det bøvlede jeg med en hel dag :)

Her er min kode indtil nu:

<?
session_start();
include("pclzip.lib.php");
$zipnavn = "archive.zip";
$antal_ad_gangen = 10;


$mappe = "produkter/"; //server
$archive = new PclZip($_SERVER['DOCUMENT_ROOT'] . "/" . $zipnavn); //server


//$mappe = "varer/"; //localhost
//$archive = new PclZip($zipnavn); //localhost



if(isset($_REQUEST['side'])) {
    $start = $_REQUEST['side'];
} else {
    $_SESSION['filer'] = "";
    @unlink($zipnavn);
    $handle = opendir($mappe);
    while (($fil = readdir($handle)) !== false) {
        if (($fil != "." && $fil != "..")) {
       
            if(is_dir($mappe . $fil)) {
            $_SESSION['filer'][] = $mappe . $fil . "/";
            } else {
            $_SESSION['filer'][] = $mappe . $fil;
            }
       
        }
}

$start = 0;
}

$antal_billeder = count($_SESSION['filer']);

echo "Samlet antal billeder der skal pakkes: " . $antal_billeder . "<br>Pakkes nu:<br>";
$i = $start;
while($i < ($start+$antal_ad_gangen)) {

    echo $_SESSION['filer'][$i] . "<br>";
    $v_list = $archive->add($_SESSION['filer'][$i]);
    if ($v_list == 0) {
    die("Error : ".$archive->errorInfo(true));
    }
    $i++;
}

if($antal_billeder > ($start+$antal_ad_gangen-1)) {
    $hvortil = ($start+$antal_ad_gangen);
} else {
    $hvortil = $antal_billeder;
}

echo "(Pakker billede " . ($start +1) . " - " . $hvortil . ")<br>" . round((($hvortil) / $antal_billeder * 100)) . " % færdig";
if(($start+$antal_ad_gangen) < $antal_billeder) {
?>
<script type="text/javascript">
location.href='test4.php?side=<? echo ($start+$antal_ad_gangen);?>';
</script>
<?
} else {
echo "<br>Pakning lykkedes, du kan nu downloade den pakkede zip-fil her: <a href=\"" . $zipnavn . "\">". $zipnavn . "</a>";
}
?>
Avatar billede Syska Mester
02. februar 2004 - 14:03 #6
Det ser jo meget interessant ud....
Du må endelig sige til når du engang bliver færdig med det, hvis du altså poster det offenligt på nettet.

// ouT
Avatar billede Slettet bruger
02. februar 2004 - 14:05 #7
Det skal jeg gøre :)
Avatar billede Syska Mester
09. juli 2004 - 18:08 #8
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester