[php4] filesize van ongecomprimeerd bestand opvragen

Pagina: 1
Acties:

  • DPLuS
  • Registratie: April 2000
  • Niet online
Ik heb de volgende functie waarmee ik bestanden via een HTTP_Upload gecomprimeerd opsla:

PHP:
1
2
3
4
5
6
7
8
9
10
function Compress($srcFileName, $dstFileName) {
    // getting file content
    $fp = fopen( $srcFileName, "rb" );
    $data = fread ( $fp, filesize( $srcFileName ) );
    fclose( $fp );
    // writing compressed file
    $zp = gzopen( $dstFileName, "wb9" );
    gzwrite( $zp, $data );
    gzclose( $zp );
}


Nu moet het de bedoeling zijn deze bestanden weer later ongecomprimeerd te kunnen downloaden, en dus:

PHP:
1
2
3
4
5
6
7
    if (isset($_GET['backupfile']) && ctype_digit($_GET['backupfile']) && (strlen($_GET['backupfile']) == 8)) {
    header("Content-Type: application/force-download");  
        //header("Content-Length: ".filesize($path_to_backups . $_GET['backupfile'] . ".gz"));  
        header("Content-Disposition: attachment; filename=" . $_GET['backupfile'] . ".cdb");  
        readgzfile($path_to_backups . $_GET['backupfile'] . ".gz");
        exit();
    }


Het probleem zit hem in het feit dat ik ook de filesize aan de headers wil toevoegen.
Maar hoe weet ik nu de filesize van het ongecomprimeerd bestand van te voren?

Ik zat er zelf aan te denken om een veldje in de database bij te maken en ten tijde van de upload de filesize van het ongecomprimeerd bestand erin te zetten, maar is er een betere manier??

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Gebruik gzread in plaats van readgzfile. Dan kun je de contents opslaan in een variabele en daar de stringlengte van nemen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.