Toon posts:

[ASP] forceren file download

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een nieuw intranet ben ik bezig om een functionaliteit te schrijven die er vor zorgt dat bekende MIME-typen gedownload worden in plaats van geopend middels het geassocieerde programma.

Via MSDN en andere sites kwam ik te weten dat ik dat op deze manier zou moeten kunnen doen:
response.addHeader "content-disposition", "attachment;filename=filename.ext"
Waarbij de filename.ext natuurlijk vervangen moet worden door de naam en extentie van de file die je wil laten downloaden.

Ik test met de volgende code:
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
40
<%
Dim WebFile

WebFile = Request.Form("webfile")

Function strExtractFileNameFromPath(strPath)
    ' functie die filenaam van een pad teruggeeft
    Dim mypos 
    Dim lengte
      mypos = -1
      Do
        lengte = Len(strPath)
        mypos = InStr(1, strPath, "/")
        strPath = Right(strPath, lengte - mypos)
      Loop Until mypos = 0
      strExtractFileNameFromPath = strPath
End Function

If WebFile <> "" Then
    Response.Buffer = true
    Response.Write Webfile & " -> " & strExtractFileNameFromPath(WebFile)
    Response.AddHeader "Content-Disposition", "attachment; Filename = " & strExtractFileNameFromPath(WebFile)
    Response.Clear
Else
%>
<html>
<head>
   <title>Download a file from a webserver</title>
</head>
<body>
<h2>Download a file from a webserver</h2>
Please enter the URL of the file you want to download<br>
<form method="post" action="<%= Request.ServerVariables("SCRIPT_NAME") %>">
<input type="text" name="webfile" size="50"> <input type="submit" value="Download file">
</form>
</body>
</html>   
<%
End If
%>

Het probleem is dat na het versturen van het formulier er een download popup gegeven wordt voor de asp-file en niet voor het document dat ik heb opgegeven. Het is een bestaand URL.

Mis ik hier iets? :? Of denk ik gewoon niet goed |:( ;)

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op vrijdag 16 november 2001 09:31 schreef I-eye het volgende:
[..] bekende MIMI-typen gedownload worden [..]
*LOL*

Je volgorde zit sowieso niet helemaal lekker:
1. je zet buffering aan
2. je schrijft wat tekst
3. je zet een header
4. je gooit de buffer weer leeg :?

De volgorde moet zijn:
1. buffering aan
2. verwerkingscode
3. evt. buffer legen
4. headers plaatsen (Content-type, Content-disposition, ...)
5. content sturen
6. response stoppen

IE zal overigens bijv Word documenten toch gewoon openen in de browser ook al geef je aan dat je deze wil downloaden.

Today's subliminal thought is:


Verwijderd

Topicstarter
typo = fixed!

Je hebt gelijk, was nog vroeg met coderen. ;)

Dus dat is zeker, dat Word zowieso gebruikt wordt? Dan zit er niets anders op dat ook zip bestanden aan te bieden, of mensen te instrueren voor de "richt-click, save-as" methode. :'(

Ik kwam wel een component (url2file) tegen, dan maar in disuccie met de beheerder van de server over het al dan niet installeren van een component.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Er is een topic van jelmervos waarin antwoord werd gegeven.