[ASP - MSXML2] - ZIP bestand opvangen na een POST

Pagina: 1
Acties:

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 06-11 19:57
Ik heb een script geschreven waarmee ingelogd wordt op een beveiligde website (https). Vervolgens moet ik nog een aantal pagina's opvragen voor tussenresultaten (verder niet van belang). Op een gegeven moment kom ik op een pagina met hierop een formulier.

Dit formulier heeft meerdere submitbuttons. Ik heb lokaal getest welke waarden gesubmit worden vanuit dit formulier en deze stuur ik nu ook richting die webserver (wordt wel uit de broncode gehaald in het script zodat de waarden altijd goed zijn).

Wat er gebeurt is dat na de submit er een ZIP bestand gepushed wordt richting de client. Dit ZIP bestand wil ik opslaan via ADODB.Stream. Echter ik krijg een 403 foutcode terug van MSXML2 (HTTP Error 403.1 - Forbidden: Execute access is denied). Iemand enig idee hoe ik dit kan opslaan of wat er fout zou kunnen gaan?

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


  • Depress
  • Registratie: Mei 2005
  • Laatst online: 24-11 21:01
Je wilt dus via een stream het bestand naar de gebruiker sturen?
Een 403 kan overigens wijzen op verkeerde permissies.

Verder zou ik in php gewoon headers zetten en in stukken de binairy-code echo'en dan regelt de browser het voor je. Ik heb niet zoveel kennis van asp, dus kan zijn dat je gebonden bent aan je stream.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 01-12 15:52

Jaspertje

Max & Milo.. lief

In ASP kan je idd ook Response.BinaryWrite doen, daarboven dan de response.AddHeader zetten met application/download (of winzip oid) en dan krijgt de gebruiker een popup of ie wil openen of saven

zoiets dus
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.LoadFromFile filename

filestr = objStream.ReadText

objStream.Close
set objStream = nothing
Response.ContentType = "application/download"
Response.AddHeader "Content-Disposition","attachment; filename="& Filename & "." & Extension

Response.BinaryWrite filestr

[ Voor 49% gewijzigd door Jaspertje op 19-01-2007 12:28 ]


  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 06-11 19:57
Depress schreef op vrijdag 19 januari 2007 @ 12:17:
Je wilt dus via een stream het bestand naar de gebruiker sturen?
Een 403 kan overigens wijzen op verkeerde permissies.

Verder zou ik in php gewoon headers zetten en in stukken de binairy-code echo'en dan regelt de browser het voor je. Ik heb niet zoveel kennis van asp, dus kan zijn dat je gebonden bent aan je stream.
Ik ben in principe de enige gebruiker ervan. Ik wil dus eigenlijk niets meer dan dat als ik het script uitvoer en uiteindelijk wordt dat ZIP bestand gepushed dat ie dat dan opslaat op die server waar het script op draait. Echter als ik dus via die website op die knop druk wordt het betreffende formulier gepost. Vervolgens krijg je een dialoogvenster met daarin de vraag of je het ZIP-bestand wilt openen/opslaan/annuleren. ZIP bestand wordt dus kennelijk gepushed (?) en dus zou ik 'm als stream moeten kunnen binnenhalen lijkt me.

Echter in de responseText zit de 403 pagina en ook in de responseBody (waar ik normaal de stream uithaal). De rechten zouden toch niet anders moeten zijn dan vanuit m'n browser?

Ik heb overigens zojuist even vanaf die server de hele procedure gedaan via de browser en kwam erachter dat sommige pagina's gewoon blank bleven terwijl het component wel z'n data krijgt? Vreemde zaak, Ik heb nu alle domeinen waar ie langs moet aan trusted sites toegevoegd op die server en dan kan ik er hetzelfde doorheen wandelen. Echter via component nog steeds 403....

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 06-11 19:57
Jaspertje schreef op vrijdag 19 januari 2007 @ 12:24:
In ASP kan je idd ook Response.BinaryWrite doen, daarboven dan de response.AddHeader zetten met application/download (of winzip oid) en dan krijgt de gebruiker een popup of ie wil openen of saven

zoiets dus
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.LoadFromFile filename

filestr = objStream.ReadText

objStream.Close
set objStream = nothing
Response.ContentType = "application/download"
Response.AddHeader "Content-Disposition","attachment; filename="& Filename & "." & Extension

Response.BinaryWrite filestr
Levert ook gewoon de 403 op. Snap alleen nog steeds niet hoe dat kan. Het lijkt me niet dat het (volgens mij door de browser gegenereerde) dialoogvenster in de weg zit? Is toch gewoon een stream die teruggestuurd wordt vanaf die server waarop die browser zegt van "laat ik 's een dialoogvenster tonen om 's te kijken wat ie er eigenlijk mee wil" ?

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 01-12 15:52

Jaspertje

Max & Milo.. lief

Dan heb je geen schrijf rechten op de map waarop je wil wegschrijven, je moet dan de ISUR of IWAM rechten geven om te schrijven op de map waar de zip heen moet (weet niet precies welke van de 2)

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 06-11 19:57
Jaspertje schreef op vrijdag 19 januari 2007 @ 12:59:
Dan heb je geen schrijf rechten op de map waarop je wil wegschrijven, je moet dan de ISUR of IWAM rechten geven om te schrijven op de map waar de zip heen moet (weet niet precies welke van de 2)
Nope is het ook niet want hij schrijft de 403 pagina wel weg met als naam test.zip :)

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 06-11 19:57
Oops :| had per ongeluk het verkeerde pad opgegeven van de laatste post. Heeft even geduurd maar ben er dan toch.

Bedankt voor de reacties.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.

Pagina: 1