08. marts 2008 - 17:21Der er
27 kommentarer og 1 løsning
stream fil
hvad er det lige jeg gør galt her??
i Firefox virker det umiddelbart fint, men med IE står den til at hente en eller anden slags html fil??? men når man henter er det rigtigt nok den fil men streamer
"hvad er det lige jeg gør galt her??" >> ikke ret meget mere, end alt det, du _kan_ gøre galt :)
- men, den ser da vældig sjov ud! Er det meningen, at dine brugere skal kunne læse al indhold (kode) af alle filer på hele serveren? Giv mig femten sammenhængende minutter med den fil og du har en tom database - og sikkert ikke ret meget andet, der virker på serveren. En øvet hacker skal højst bruge fem ;o)
ud over det er det heller ikke som om at den får content-length med, da den ikke viser hvor langt (procent) downloadningen er nået.. men kun hvor eget data som er loaded
men kan du så svare mig på om det er tiltrækkeligt med følgende if-statement for at sikre unødig tilgang til filer osv. (mit indlæg fra 08/03-2008 18:08:27)?
er det muligt at vide om et specifikt download bliver fuldført eller ej?
jeg tænker på.. ved ikke om du kender www.beatport.com, men den "ved" om du downloader en fil til enden også efter du har lukket siden og filoverførslen fortsætter..
Ja, men så skal du bruge fopen/fread/fclose i stedet for file_get_contents eller readfile - du skal checke på connection_aborted()... Jeg har en rigtig gammel download-klasse et sted, jeg skrev til et site... Ved dog ikke om jeg kan finde den :D
Ikke lige, men start scriptet med ignore_user_abort(TRUE); og så læs f.eks. 8192 bytes ad gangen med fopen og fread i en while !feof-løkke hvor du inde i løkken checker for connection_aborted(), i.e.
if ( $fp = fopen( "dokument.doc", "rb" ) ) { $aborted = FALSE; while ( !feof( $fp ) ) { $cnt = fread( $fp, 8192 ); echo $cnt; $aborted = connection_aborted(); if ( $aborted ) break; } fclose( $fp ); // $aborted er TRUE hvis brugeren abortede... }
jo, så virker det.. men er det ikke muligt at lave noget så det kan blive muligt at surfe videre i samme klient? ellers vil det jo blive lidt problematisk :(
Nej ikke lige - Noget med samtidige forbindelser i apache/php/session kunne jeg forestille mig... Jeg tror man kan omgå det ved at downloade fra et underdomæne (og derved tvinger en ny session i gang)...
det gælder begge eksempler - sådan er det når man aldrig tester noget af det man skriver :( hehehe
Synes godt om
Ny brugerNybegynder
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.