[ASP] Files buiten de wwwroot downloaden

Pagina: 1
Acties:

  • Bladerer
  • Registratie: September 2001
  • Laatst online: 29-04-2025
Hoi allemaal,

ik wil dat een klant van ons zonder dat hij ftp toegang heeft tot onze server zijn eigen MS access db kan downloaden via een asp pagina, eerst inloggen enz enz, en hem dan vervolgens die file laten downloaden, die file staat echter buiten de wwwroot voor de veiligheid.

wie kan mij vertellen hoe ik die file dan toch kan benaderen.

Via ado 2.6 kon het met het stream object, dit object is echter niet voor handen op de server dus ik zoek een andere methode.. wie kan mij meer vertellen?

Groeten Arthur

[edit even wat veranderen\]

MSI K7T 266 PRO | AMD T-bird 1400Mhz 42 idle 49 stressed | 2 * 256 MB PC2100 DDR Major Major | 120 GB IBM Deskstar + 40 GB IBM Deskstar | TNT 2 M64 Gainward PCI | Pioneer DVD-106S | LiteOn LDW 401S @ 411S DVD +/- R(W) | Enlight 300 Watt| IIyama 19"


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Uhm maak een 2e virtual website aan die verwijst naar de directory met de db vervolgens zou je die webdirectory open kunnen zetten voor zijn IP en of met Windows Security kunnen beveiligen.

Overigens zou ik geen enkele reden zien waarom je geen ftp access zou geven.

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
FileSystemObject werkt overal, ook buiten de wwwroot. Dus daarmee moet t prima kunnen.

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 15-09 11:04

Basszje

Reisvaap!]

Als je met FileSystemObject file opent en dan via de juiste mime type ( response.contenttype) de file weer naar de webbrowser schrijft ( response.write ), dan komt er zo'n opslaan dialog te staan.

E.v. zou je ook nog de juist http headers kunnen meesturen voor een 'attachment' ( response.addheader -> content disposition )

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
of je schrijft een stukje code dat de DB mailt (als ie niet te groot is) en met SAfileup component kun je zelfs het bestand eerst zippen op de server. Een DB gezipped is erg klein en dus goed te mailen (zo doen wij het althans)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Bladerer
  • Registratie: September 2001
  • Laatst online: 29-04-2025
Bedankt allemaal ik ga zoeken in de FSO kant

groeten

MSI K7T 266 PRO | AMD T-bird 1400Mhz 42 idle 49 stressed | 2 * 256 MB PC2100 DDR Major Major | 120 GB IBM Deskstar + 40 GB IBM Deskstar | TNT 2 M64 Gainward PCI | Pioneer DVD-106S | LiteOn LDW 401S @ 411S DVD +/- R(W) | Enlight 300 Watt| IIyama 19"


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:11

Crazy D

I think we should take a look.

Met het filesystemobject kun je niet binair inlezen...
Met het ADODB.stream object kan het wel.

Exact expert nodig?


  • Bladerer
  • Registratie: September 2001
  • Laatst online: 29-04-2025
Dat heeft dus wel gevolgen als dat zo is. ik wil namelijk een .mdb bestand kunnen downloaden.

is er iemand die me wat gedetaileerdere informatie kan verschaffen over hoe ik het kan doen, en wellicht wat meer aanwijzingen dan per aangeboden oplossing want ik ben nu al 2 dagen aan het zoeken maar kom er echt niet uit.

op de server is zo weet ik nu ADO 2.0 aanwezig.

Alvast dank

MSI K7T 266 PRO | AMD T-bird 1400Mhz 42 idle 49 stressed | 2 * 256 MB PC2100 DDR Major Major | 120 GB IBM Deskstar + 40 GB IBM Deskstar | TNT 2 M64 Gainward PCI | Pioneer DVD-106S | LiteOn LDW 401S @ 411S DVD +/- R(W) | Enlight 300 Watt| IIyama 19"


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
iets dergelijks zou moeten werken...
ik neem aan dat je wilt dat ze de database kunnen downloaden en dat die niet gelijk geopend wordt; je moet response.contenttype dan waarschijnlijk op "application/x-download" zetten

<%
Response.Buffer = TRUE
Response.Clear
Response.Expires = 0
Response.ContentType = "application/msword"

strMyPath = "C:\mydoc.doc"

Response.AddHeader "Content-Disposition","attachment;filename=" & "mydownloadeddoc.doc"

Set objFileSys = Server.CreateObject("Scripting.Filesystemobject")

Set objFile = objFileSys.GetFile(strMyPath)
FileSize = objFile.Size
Set objFile = Nothing

Set objFile = objFileSys.OpenTextFile(strMyPath, 1, false, -1)

Response.BinaryWrite(objFile.Read(FileSize))

Set objFile = Nothing
Set objFileSys = Nothing

Response.Flush
%>

Verwijderd

FAQ:
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz [user]" of iets dergelijks onder je post te plakken. Als je perse zoiets wilt kun je daar je signature voor gebruiken (zie latere uitleg).

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:11

Crazy D

I think we should take a look.

Op dinsdag 05 februari 2002 21:12 schreef gotcha het volgende:
Set objFileSys = Server.CreateObject("Scripting.Filesystemobject")
Bij mijn weten kan het fout gaan met het filesystemobject aangezien die (voor zover ik weet) niet binair maar als tekst inleest...

Dit is een stukje met het Ado stream object...
code:
1
2
3
4
5
6
7
8
Dim oStream, data
Set oStream = Server.CreateObject("ADODB.Stream")
oStream.Type = 1 ' adTypeBinary
oStream.Open 
oStream.LoadFromFile("C:\data.mdb")
data = oStream.Read 
oStream.Close
Set oStream = Nothing

Waarna de rest volgens mij wel moet werken ('data' met binarywrite uitspugen), alleen zou ik de contenttype niet op msword zetten, het lijkt me dat dat iets als ms-access zou moeten zijn... ;)

Exact expert nodig?


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
Bij mijn weten kan het fout gaan met het filesystemobject aangezien die (voor zover ik weet) niet binair maar als tekst inleest...
ja, ik had er ook ff m'n twijfels over. het werkte wel, maar ik weet zeker dat ik het ooit anders heb opgelost. kon dat alleen nergens meer vinden.

en contenttype staat hier idd op msword aangezien het een (gejat) stukje samplecode is :)
Pagina: 1