Downloaden van bestanden via IE6 SP1, IIS 5 en SSL

Pagina: 1
Acties:

  • pioneer5
  • Registratie: Februari 2000
  • Laatst online: 06-07-2021
Ik ben momenteel bezig met de ontwikkeling van een webapplicatie, waarbij een bezoeker o.a. bestanden kan uploaden. Bij het uploaden worden de bestanden als binary data weggeschreven in een MS SQL database. Omgekeerd moeten gebruikers ook weer toegang hebben tot de bestanden.

Hiervoor wordt door de webapplicatie een link gegenereerd. Als een gebruiker op zo'n link klikt, moet het bijbehorende bestand naar de browser worden gepushed, die dan vervolgens een "Save-as" dialogue moet tonen. Hiervoor gebruik ik de volgende ASP-code in een pagina "download.asp":

Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=" & strBestandNaam
Response.AddHeader "Content-Length", strGrootte
Response.BinaryWrite vntInhoud
Response.End

strBestandNaam, strGrootte en vntInhoud zijn variabelen die worden gevuld met de bijbehorende waarden uit de database.

De gehele webapplicatie draait echter onder SSL. Indien een gebruiker nu op een link naar een bestand klikt, krijgt hij de volgende foutmelding:

"Unable to download.
Internet Explorer was unable to open this site. The requested site is either unavailable or cannot be found. Please try again later."

Onder Netscape zijn er geen problemen en werkt het downloaden van bestanden als een zonnetje. Als ik de pagina "download.asp" uit SSL haal, levert ook het downloaden onder IE geen enkel probleem op. Het uit SSL halen van deze pagina is echter vanwege security geen optie.

Enig speurwerk op internet in communities, discussiegroepen, fora e.d. leverde honderden posts op van mensen die met hetzelfde probleem zitten, maar nergens is een oplossing te vinden. In de Microsoft Knowledge Base ben ik nog de volgende twee artikelen tegengekomen, die ermee te maken zouden kunnen hebben:

http://support.microsoft....spx?scid=kb;en-us;Q323308
http://support.microsoft....spx?scid=kb;en-us;Q302109

Het uitvoeren van gesuggereerde oplossingen loste het probleem echter niet op.

Onze ontwikkelomgeving bestaat uit:
Visual Studio 6.0 (ASP-pagina's ontwikkeld in Interdev)
IIS 5
Internet Explorer 6.0 Service Pack 1

Wellicht is er iemand die mij met dit probleem kan helpen?

  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
De oplossing heb ik niet voor je maar heb je het probleem al opgedeeld in 'stukjes'?
Bestand uit db via een gewone verbinding
Een 'echt' bestand via SSL
Cache directives aanpassen etc.

En welke levert dan problemen op?

  • pioneer5
  • Registratie: Februari 2000
  • Laatst online: 06-07-2021
Bedankt voor je reply:
Bestand uit DB via gewone verbinding werkt prima, zowel Netscape als IE
"Echt" bestand via Netscape & SSL: geen probleem
"Echt" bestand via IE & SSL: lukt niet, daar zit 'm nu net het probleem
Cache-directives hebben we alle mogelijke zinnige combinaties al van geprobeerd, cache-control: no-cache, no-store, private, etc. etc. etc.

  • Digihelp ®
  • Registratie: Maart 2001
  • Laatst online: 25-08 10:10
Excuses voor late antwoord, hopelijk heb je hier nog iets aan:

Ik zat met het zelfde probleem, maar met onderstaande oplossing ben ik er uit gekomen.

van : http://www.php.net/manual...session-cache-limiter.php

Hi there,
this is for everyone having problems with downloading files with IE5.x and SSL while using sessions !!!!!!!
You don't have to use 'session_cache_limiter('public');' before session_start() !!!
I had problems using it 'cause I would have ruined my session which is needed to create the file which was intended for download.
Instead of this, I use following headers:
header("Content-Type: WHATEVER_YOU_LIKE");
header("Content-Disposition: inline; filename=\"excel.xls\"");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");

The last header is the most important, cause the header "Pragma: nocache"
generated by PHP after calling session_start() is the main problem when using IE and SSL.
The "Pragma: nocache" is only recognized by IE5.x and ONLY used if connection is made over SSL.
Setting it to (not existing) "Pragma: public" overwrites the PHP-generated header, and everything works fine.

[ Voor 8% gewijzigd door Digihelp ® op 29-12-2002 12:35 ]