Avatar billede sf Nybegynder
12. september 2007 - 17:50 Der er 8 kommentarer og
1 løsning

ASPBinFile.clsASPBinFile hent fil

jeg har denne kode til at hente filer fra asp men på nogle netværk vil den ikke hente filer over 15 mb en der har en ide til hvorfor den ikke vi det?

Set oFile = objFso.GetFile(strFilename)
   
Set objBinFile = Server.CreateObject("ASPBinFile.clsASPBinFile")
                   
    strExtension = Right(strFilename, 3)
           
    response.Buffer = false
    Response.Expires = -1
    Response.ContentType = GetHTMLContentTypeFromExtension(strExtension)
    Response.AddHeader "content-disposition", "attachment; filename="& oFile.Name
           
    binStream = objBinFile.BinFileRead(strFilename)
    Response.BinaryWrite(binStream)
Avatar billede montago Praktikant
14. september 2007 - 09:34 #1
hvorfor ikke bare bruge ADO.Stream ???

dér kan du blot loade hele filen vha. .LoadFromFile("\\net\drev\fil.ext")

og bagefter streame den...
Avatar billede montago Praktikant
14. september 2007 - 09:35 #2
dét kunne også tænkes at ASPBinFile.clsASPBinFile har en buffersize på 16.7 MB ??
dvs. 2^24 bytes =^= 16.7 MB
Avatar billede sf Nybegynder
21. september 2007 - 15:11 #3
hej montago

mange tak for hjælpen.. men det synes ikke at løse problemet.. tror ikke det er ASPBinFile.clsASPBinFile  der har problemet for på nogle netværk virker det.. har prøvet at rette på aspbuffersize på iis men har heller ikke løst problemet.. har du andre forslag?
Avatar billede montago Praktikant
21. september 2007 - 16:33 #4
hvor langt tid tager det at hente filen ind ?... er det et hurtigt netværk ?

nogle objekter har jo timeout som er relativ lav...
Avatar billede sf Nybegynder
24. september 2007 - 08:56 #5
jo det går ret hurtigt normalt.. hvad gør jeg hvis det er et timeout? hvordan tester jeg om det er det?
Avatar billede montago Praktikant
24. september 2007 - 09:27 #6
du kan prøve at sætte en limit på upload hastigheden på den computer du henter fra, ved at bruge NetLimiter... hvis du derefter kun kan hente fx 2 MB og MAX 2 MB... så er det helt sikkert timeout.

Jeg har selv kun brugt ADO.Stream hvor jeg successfuldt har loadet mere end 200MB ind i rammen, og streamet dem bagefter. tricket er så at jeg har en Timeout på hele scriptet på 999 sekunder = 16 minutter -- når man som jeg streamer MP3'er fra ADO.Stream kan jeg derfor kun afspille 16 minutter i Winamp :(

Jeg vil anbefalde at prøve at bruge ADO.Stream, idet dit object med garanti bare er en wrapper til netop dette objekt. med ADO.Stream kan du også indstille dine parametre mere præcist, Buffersize osv...

http://www.w3schools.com/ADO/ado_ref_stream.asp
Avatar billede sf Nybegynder
24. september 2007 - 10:31 #7
har fået den til at åbne i browseren nu.. men kan man med ADO få den til at spørge om den skal gemme på harddisken i stedet?
Avatar billede sf Nybegynder
24. september 2007 - 14:35 #8
har fået det til at virke .. mange tak for hjælpen.. laver du ikke lige et svar?
Avatar billede montago Praktikant
24. september 2007 - 14:56 #9
ADO kan gemme på harddisken eller streame til browseren... dette vælger du på objektet selv
tror nok det er objADO.save("c:\file.dat") eller lign

dét med at spørge, er helt op til dig... dvs. du laver en GUI som spørger hvad brugeren vil
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester