Toon posts:

[ASP] redirect na Content-Disposition, hoe?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben mijn brein weer eens aan het breken over een download-knoppie in ons intranet. Middels een javascript wordt een venster geopend (zie ook: http://gathering.tweakers.net/forum/list_messages/496436/1?limit=25) waarin o.a. onderstaande code uitgevoerd wordt:
code:
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
29
30
31
32
33
34
35
36
37
38
39
<!--#include virtual="/NR/System/Access/Authenticate.inc"-->
<%
Response.Expires = 0

Dim sFileUrl, sFilePath, sPostingGuid, sFileExtention, sFileName, oPosting

Function getBinaryFile(fileSpec)
    Dim adTypeBinary
    Dim oStream
        
    adTypeBinary     = 1
    set oStream  = Server.CreateObject("ADODB.Stream")
    
    oStream.Open
    oStream.Type     = adTypeBinary
    
    oStream.LoadFromFile fileSpec
    
    getBinaryFile   = oStream.read
    
    set oStream = nothing
end Function

sFileUrl         = Request.QueryString("fileurl")
sFilePath        = Replace(sFileUrl,"http://" & Request.ServerVariables("SERVER_NAME") & "/yamadocs", "")
sFilePath        = "d:\yamanet\documents" & Replace(sFilePath,"/","\")
sFileName    = Mid(sFileUrl,InStr(sFileUrl,"{"))
sPostingGuid    = Left(sFileName,InStrRev(sFileName,".") - 1)
sFileExtention  = Mid(sFileName,InStrRev(sFileName,"."))

Set oPosting     = AutoSession.Searches.GetByGUID(sPostingGuid)
sFileName   = oPosting.DisplayName
Set oPosting     = Nothing

Response.ContentType    = "application/x-unknown"

Response.AddHeader "Content-Disposition","attachment; filename=" & chr(34) & sFileName & sFileExtention & chr(34)
Response.BinaryWrite getBinaryFile(sFilePath)
%>

Het draait allemaal in de MS Content Management Server omgeving, vandaar de include.

Het Javascriptje moet het geopende venster na 2.5 secoden weer sluiten. Wat is nou het geval: dit gebeurt niet consequent, de ene keer wel de andere keer niet. Nou wil ik proberen om dit te laten gebeuren in het geopende venster, nadat het bestand is gedownload door de gebruiker.

Hoe kan ik een redirect doen naar een pagina nadat het bestand is gedownload? Of een response.write van een stukje javascript wat dit doet?

Verwijderd

Topicstarter
ik heb het nu anders opgelost, geen pop-up meer maar direct linken naar de asp-file die het bestand download. Nu heb ik echter iets anders vreemds, als eerste wordt er een htm bestand te download aangeboden.

Afbeeldingslocatie: http://www.endoria.net/upload/index.php/1198418573

wanneer de gebruiker hier kiest voor open, krijg hij/zij wel het document aangeboden

Afbeeldingslocatie: http://www.endoria.net/upload/index.php/2793721609

nu dus kiezen voor save en het script zorgt ervoor dat een herkenbare bestandsnaam automatisch gekozen is.

Afbeeldingslocatie: http://www.endoria.net/upload/index.php/2235644666

Is hier nog iets aan te doen?

Verwijderd

Topicstarter
kleine schop omhoog... :)

Verwijderd

uhmmm, tja bineair streamen. Ik doe dat altijd met ASPupload. Dat werkt goed, en het werkt voor alle browsers. Dat scheelt namelijk nogal

Verwijderd

Topicstarter
dat doe ik toch ook? zie de gebruikte functie. Of heb je een andere manier?