anoniem Geplaatst: 12 juli 2005 Delen Geplaatst: 12 juli 2005 Ik stream bestandjes uit een database met: Response.ContentType = rs("ContentType") Response.AddHeader "Content-Disposition", "attachment; filename=" & rs("Filename") Response.BinaryWrite rs("File") De bezoeker krijgt dan van IE de keuze te openen, op te slaan of te annuleren. Is er een manier om te achterhalen welke keuze is gemaakt? Quote Link naar reactie
anoniem Geplaatst: 12 juli 2005 Auteur Delen Geplaatst: 12 juli 2005 Bij de standaard save dialog van de browser denk ik van niet, maar misschien heb je hier wat aan? http://www.functionx.com/vbnet/controls/SaveFileDialog.htm Quote Link naar reactie
anoniem Geplaatst: 15 juli 2005 Auteur Delen Geplaatst: 15 juli 2005 [quote:14707f988b="Paulus"]Ik stream bestandjes uit een database met: Response.ContentType = rs("ContentType") Response.AddHeader "Content-Disposition", "attachment; filename=" & rs("Filename") Response.BinaryWrite rs("File") De bezoeker krijgt dan van IE de keuze te openen, op te slaan of te annuleren. Is er een manier om te achterhalen welke keuze is gemaakt?[/quote:14707f988b] Nee, niet zonder iets op de client te installeren. Waarom zou je dat willen weten? Quote Link naar reactie
anoniem Geplaatst: 15 juli 2005 Auteur Delen Geplaatst: 15 juli 2005 Omdat ik dan weet of het gestreamde bestand is gedownload of niet, dus of er dataverkeer was of niet. Dat kan ik in de weblog (iis) nl. niet terugvinden. Quote Link naar reactie
anoniem Geplaatst: 16 juli 2005 Auteur Delen Geplaatst: 16 juli 2005 [quote:bc2a101e18="Paulus"]Omdat ik dan weet of het gestreamde bestand is gedownload of niet, dus of er dataverkeer was of niet. Dat kan ik in de weblog (iis) nl. niet terugvinden.[/quote:bc2a101e18] [code:1:bc2a101e18] Response.ContentType = rs("ContentType") Response.AddHeader "Content-Disposition", "attachment; filename=" & rs("Filename") Response.BinaryWrite rs("File") <----------- (1) [/code:1:bc2a101e18] (1) Als je op dit punt in de code bent aanbeland dan weet je dat het bestand volledig is verstuurd. Het is heel goed mogelijk dat de client al begint met downloaden voordat de gebruiker daadwerkelijk een locatie gekozen heeft om het bestand op te slaan. Quote Link naar reactie
anoniem Geplaatst: 16 juli 2005 Auteur Delen Geplaatst: 16 juli 2005 Als ik het hier lokaal doe (clientbak=serverbak) met een bestand van 80MB, dan lijkt het er idd op alsof het streamen al begint voor ik de keuze maak. Het duurt dan even voor ik het dialoogvenster krijg en als ik dan meteen enter (opslaan) dan begint het kopieren al (vanaf de cache, dus de download is dan helemaal klaar). Doe ik het met een bestand van 10 MB op een externe webserver, dan krijg ik direct het dialoogvenster en met mijn vinger op de escapeknop annuleer ik hem ook weer direct, dus op zeker voor de download gereed kan zijn. Ook dan wordt de code na (1) uitgevoerd (waar ik een logentry maak). Mijn conclusie is dan dat de code na de BinaryWrite hoedanook wordt uitgevoerd, of nou is opgeslagen of geannuleerd. Quote Link naar reactie
anoniem Geplaatst: 16 juli 2005 Auteur Delen Geplaatst: 16 juli 2005 [code:1:aec2586f91] Response.ContentType = rs("ContentType") Response.AddHeader "Content-Disposition", "attachment; filename=" & rs("Filename") Response.BinaryWrite rs("File") <----------- (1) if Response.IsClientConnected then ' OK else ' Connectie verbroken. endif [/code:1:aec2586f91] (1) Als je op dit punt in de code bent aanbeland dan weet je dat het bestand volledig is verstuurd. Als de verbinding met de client wegvalt, dan wordt de data naar een 'zwart gat' verstuurd. Het kan in dit voorbeeld wel zijn dat het bestand correct verstuurd wordt, maar op (1) de connectie verbroken wordt. Een andere mogelijkheid is het bestand in blokken naar de client versturen en per blok bekijken of er nog een connectie is. - [url=http://support.microsoft.com/kb/q182892/]How To Use IsClientConnected to Check If Browser Is Connected[/url] - [url=http://www.dmxzone.com/ShowDetail.asp?NewsId=492]ASP Timeout on Large Files or Slow Connection[/url] Quote Link naar reactie
anoniem Geplaatst: 17 juli 2005 Auteur Delen Geplaatst: 17 juli 2005 Bedankt voor de tips, ziet eruit alsof ik daarmee voor elkaar kan krijgen om te achterhalen of het bestand helemaal is gedownload of niet, maar vooralsnog krijg ik het streamen in blokken vanuit een database niet lekker lopen hier, wel vanaf de harddisk (LoadFromFile), maar dan ook weer niet meer als ik na het streamen een connectie met de database openzet. Adodb-objecten die elkaar in de weg zitten ofzo. Ik kijk er weer een keer naar als ik fris ben en misschien moet ik de files ook maar gewoon op de harddisk opslaan, de db is daar toch niet zo'n geschikte plaats voor. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen