[php] fpassthru probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
heb het volgende in mijn ogen simpele scriptje:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
$fileName= $_REQUEST['file'];
$dir= $_REQUEST['dir'];

$fileString=$dir.'/'.$fileName;  

// Filenaam aanpassen voor IE (deze fix heb ik van php.net)
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))
{
  $fileName = preg_replace('/\./', '%2e',$fileName,substr_count($fileName,'.')-1);
}

// Kijken of de file bestaat
if(!$fdl=@fopen($fileString,'r'))
{
        die("Niet gevonden!");
} else {
        // Eerste 2 headers zo laten ivm IE (ook van php.net)
        header("Cache-Control: ");   
        header("Pragma: ");         
        header("Content-type: application/octet-stream");
        header("Content-Disposition: attachment; filename=\"".$fileName."\"");
        header("Content-length:".(string)(filesize($fileString)));
        sleep(1);
        fpassthru($fdl);
}

?>


Als je via dit script een file opslaat, gaat alles prima (in IE).
Als je gelijk voor openen in IE kiest, zegt ie dat ie het bestand niet kan vinden, wat voor soort file het ook is (doc, pdf, txt).
In Mozilla kan je de file wel direct openen...
Iemand enig idee waardoor dit komt?

[ Voor 11% gewijzigd door mocean op 12-04-2004 19:29 ]

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

IE verwacht 'm in de cache, maar dat sta jij niet. Eerst downloaden dus en dan pas bekijken als je via IE surft.

* AtleX heeft zoiets eens gehad met PHP 3 en IE 5. Ik slik er nu nog Prozac voor.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
AtleX schreef op 12 april 2004 @ 19:41:
IE verwacht 'm in de cache, maar dat sta jij niet. Eerst downloaden dus en dan pas bekijken als je via IE surft.

* AtleX heeft zoiets eens gehad met PHP 3 en IE 5. Ik slik er nu nog Prozac voor.
moet ik dan wat headers weglaten om m in de cache te krijgen?

[ Voor 4% gewijzigd door mocean op 12-04-2004 19:51 ]

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:43
Ik weet niet of het iets met je probleem te maken heeft (heb even geen MSIE beschikbaar) maar die lege headers (die je genereert op regel 19 en 20) kunnen niet de bedoeling zijn, lijkt me. Beide headers verwachten tenminste 1 argument; als je die voor de Cache-Control niet kunt geven, laat dan gewoon de header weg (geen slechte keuze als je verder niet weet wat je er mee moet). Wat je met die Pragma-header wil is me niet duidelijk; misschien moest dat "Pragma: no-cache" worden, maar dat staat er nu niet en dat is ook eigenlijk alleen maar bedoelt voor oude browsers die geen HTTP/1.1 begrijpen (Internet Explorer hoort daar gelukkig zeker niet bij).

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Als ik die 2 lege headers weglaat, blijft het probleem hetzelfde...

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • seweso
  • Registratie: Augustus 2003
  • Laatst online: 04-04-2018

seweso

de mouw is uit de aap

Misschien is dit een beter alternatief:
PHP:
1
echo file_get_contents($fileString);

seweso's blog


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:43
Waarom dan :?

Acties:
  • 0 Henk 'm!

  • seweso
  • Registratie: Augustus 2003
  • Laatst online: 04-04-2018

seweso

de mouw is uit de aap

Ik ben sowieso niet zo'n fan van fopen enzo... maar daar hoef je het niet mee eens te zijn.

Daarnaast kun je als je tijdelijk een alternatieve methode gebruikt vaak beter de bron van het probleem bepalen, doordat je bepaalde gedeeltes van je programma kan markeren als 'goed'...

seweso's blog


Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

mocean schreef op 12 april 2004 @ 21:27:
Als ik die 2 lege headers weglaat, blijft het probleem hetzelfde...
Staat je cache in IE misschien lager dan de grootte van de file - of staat je IE ingesteld dat hij altijd de paginas moet verversen ? (cache instelling)? :)

Of staat toevallig je webserver zo ingesteld? :)

[ Voor 8% gewijzigd door elevator op 13-04-2004 17:05 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

seweso schreef op 13 april 2004 @ 17:04:
[...]
Ik ben sowieso niet zo'n fan van fopen enzo... maar daar hoef je het niet mee eens te zijn.
intern gebruikt die functie ook gewoon fopen lijkt me :P

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Probleem nog steeds aanwezig. Lijkt te maken te hebben met welke update je hebt voor IE6, bij sommige niet-geupdate versies gaat het wel goed.

Heb al talloze headers geprobeerd, mar zonder succes. Ik ga de mensen maar aanleren de file op te slaan als het niet werkt :(.

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 20-09 21:53
Ik heb hier ooit eens een KB artikel van MS over gelezen.
Deze http://support.microsoft....spx?scid=KB;EN-US;Q279667 lijkt er enigszins op, maar dat is volgens mij niet de bug die jij beschrijft.

It’s nice to be important but it’s more important to be nice

Pagina: 1