[php] file download ie 'hangen' na cancel...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met een heel weird probleem waar k na uren zoeken nog steeds geen oplossing voor heb :( :(

Via php kan een file gedownload worden van mn webserver, dit werkt perfect! :) MAAR... als ik nu tijdens het downloaden op cancel klik en vervolgens weer verder wil browsen in mijn php systeempje dan blijft ie 'hangen' (heel lang laden) en dan na enkele vele minuten (of veel langer) gaat ie pas door naar de link die ik heb aangeklikt in mijn systeem. (dit doet ie trouwens ook als ik gewoon F5 doe, dus dezelfde pagina refresh)

Het lijkt dus wel of ie alsnog die file verder transferred voordat ie verder wil ofzo... k heb ook al 100 verschillende header combinaties uitgeprobeerd, hieronder degene die ik nu heb:

PHP:
1
2
3
4
5
6
7
8
9
10
11
header("Pragma: no-cache"); 
header("Expires: 0"); // set expiration time 
header("Cache-Control: private"); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: " . filesize($filename)); 
header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download"); 

header("Content-disposition: attachment; filename=\"" . $file[0]['filename'] . "\""); 
readfile( $filename );


Specs:
IE 6.0
Windows XP Pro
PHP 4.3.4

K hoop dat een van jullie me aan een oplossing kan helpen...

[ Voor 29% gewijzigd door Verwijderd op 25-02-2004 16:03 ]


Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 20-09 23:02
Ik denk je dit het beste kunt oplossen door in een while lus een stukje data uit het bestand te lezen en naar de client te schreven zolang je nog niet bij eof van het bestand bent en zolang de client nog geconnect is.
even in pseudo code
code:
1
2
3
4
5
6
fp = fopen('file',r)
while( !feof(fp) && is_client_connected() ){
  data = fread(fp, 102400)
  print(data)
}
fclose(fp)


Dit is trouwens ook bij de user comments van fread te vinden.

[ Voor 17% gewijzigd door Sjaaky op 25-02-2004 16:26 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hm... nooit eerder zo gebruikt, ik ga er morgen eens mee aan de slag op kantoor... thanks!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Volgens mij mag je ook maar 1 Content-Type hebben. Ik schat dat de browsers door het overvloedige gebruik de eerste of laatste kiezen, terwijl de juiste content-type application/octet-stream is ;)

There's no place like 127.0.0.1


Verwijderd

wilde gok: staat user_abort_ignore misschien op true, zodat ie ondanks een escape/cancel van gebruiker, toch netjes doorloopt?

Verwijderd

Topicstarter
MatHack schreef op 26 februari 2004 @ 07:43:
Volgens mij mag je ook maar 1 Content-Type hebben. Ik schat dat de browsers door het overvloedige gebruik de eerste of laatste kiezen, terwijl de juiste content-type application/octet-stream is ;)
ook dat heb ik natuurlijk al geprobeert, is ook niet de oplossing.. :(

Ennuh.. user_abort_ignore bestaat helemaal niet...


maaruh... die comment bij de fread funtie werkt perfect!
Pagina: 1