Avatar billede amews_aj Nybegynder
02. august 2005 - 16:12 Der er 9 kommentarer og
1 løsning

Tjekke om filen er hentet?

Jeg har dette download script


$theFile = "xx";
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Content-Type: application/octet-stream");
header ("Content-Length: " . filesize($theFile));
header ("Content-Disposition: attachment; filename=$theFile");
readfile($theFile);

Men hvordan kan jeg tjekke at filen er blevet hentet, det skal bruges da jeg skal udføre en handling når filen er hentet. Da det er nødvendigt at undersøge dette, er det fordi at XP nogle gange kommer med den bar i toppen og spørger om man vil hente.

Så altså, hvordan tjekker jeg at downloadningen er sat igang, kan jeg det?
Avatar billede coderdk Praktikant
02. august 2005 - 16:15 #1
Prøv efter readfile():

if ( !connection_aborted() && connection_status() == 0 )
{
  // Brugeren skulle stadig være der...
}
Avatar billede coderdk Praktikant
02. august 2005 - 16:16 #2
Problemet er at downloaden er i gang ved readfile() og er principielt færdig efter den linje - du kunne bruge fopen/fread/fclose i forb. med det jeg skev til at checke løbende...
Avatar billede amews_aj Nybegynder
02. august 2005 - 16:20 #3
det virker ikke
Avatar billede coderdk Praktikant
02. august 2005 - 16:48 #4
Jo, det gør det. Hvad vil du? Det er nok smartere at du forklarer hvad du vil opnå ;)
Avatar billede amews_aj Nybegynder
02. august 2005 - 16:53 #5
Hvordan gør jeg det andet du foreslog?
Avatar billede amews_aj Nybegynder
02. august 2005 - 16:55 #6
JEg vil have den til

Check rettighed til download i database
Hvis ok, så download
Hvis download bliver fuldført, så opdater database, og gå til ny side
Avatar billede coderdk Praktikant
02. august 2005 - 17:32 #7
Du kan nu godt få den til at opdatere din database med den kode du har, du kan bare ikke få den til at skifte side - Her er en samlet:

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/octet-stream");
    header("Content-Length: " . filesize($theFile));
    header("Content-Disposition: attachment; filename=$theFile");
   
    readfile( $theFile );
   
    /* Alternativt:
   
    $fp = fopen( $theFile, 'rb' );
    while ( !feof( $fp ) && !connection_aborted() && connection_status() == 0 )
    {
      echo fread( $fp, 2048 );
    }
    fclose( $fp );
    */

    if ( !connection_aborted() && connection_status() == 0 )
    {
      // Connect til din database her
    }
Avatar billede amews_aj Nybegynder
02. august 2005 - 17:44 #8
Wee, det er super, tak skal du have, så må jeg jo bare smide et link på siden som man kan trykke på når man vil "Tilbage til oversigten"

Mange tak, smid et svar!
Avatar billede coderdk Praktikant
02. august 2005 - 18:26 #9
Oki :)
Avatar billede amews_aj Nybegynder
02. august 2005 - 18:28 #10
Mange tak!
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