Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


nedladdning

Postades av 2002-11-19 13:38:55 - eva bergalm, i forum asp - allmänt, Tråden har 5 Kommentarer och lästs av 1876 personer

Jag har ett antal filer på min webbplats, som användare får ladda ner!

Jag är intresserad av att se vilka filer som är mest intressanta att ladda ner, därför
samlar jag "klickningar" i en databas!

För att användaren skall kunna ladda ner, måste givetvis en länk klickas! Jag har löst statisktiken på så vis att när användaren klickar på en länk, registreras detta i en databas.Vilken typ av fil och vilket datum osv.

Men...jag vet ju aldrig om användaren väljer "cancel", eller om nedladdningen verkligen sker fullt ut? Registreringen i databasen är redan gjord, när användaren får dialogrutan för nedladdning!

Den statistik jag får är faktiskt endast: Hur många har klickat på min länk! Nåja sannolikheten att man laddar ner, efter att ha klickat på länken är väl ganska stor!
Men tycker att informationen jag samlar, är missvisande!

Jag har begränsade kunskaper i detta, och undrar nu om detta alls går att kontrollera?
Går det att få något form av svar från en klient till servern, att nedladdning skett!
Tack på förhand /Eva




Svara

Sv: nedladdning

Postades av 2002-11-20 00:47:33 - Pelle Johansson

Hej, jag har försökt testa flera olika metoder för att köra download via ASP med ADO.STREAM objektet och det verkar inte gå att göra det du önskar. Anledningen är att du inte kan fånga den händelsen från användaren.

Vad jag förstår så startas allting till webbläsaren när man kör response.flush, i och med detta så går det inte att fortsätta ett script efter detta. Hur det skall lösas kan jag banne mig inte komma på, kanske någon annan kan det?

<code>
<%
Response.Buffer = False

sFileName = "zdtips.zip"
sFullName = Server.MapPath(sFileName)
strFileExt = Lcase(Right(sFileName ,3))

Select Case strFileExt
Case "doc"
strContentType = "application/msword"
Case "xls"
strContentType = "application/x-excel"
Case "ppt"
strContentType = "application/ms-powerpoint"
Case "zip"
strContentType = "application/x-zip-compressed"
Case "pdf"
strContentType = "application/pdf"
Case "gif"
strContentType = "imgage/gif"
Case "jpeg"
strContentType = "image/" & strFileExt
Case "jpg"
strContentType = "image/jpeg"
Case Else
strContentType = "application/x-unknown"
End Select

With Response
Const adReadAll = -1
Const adTypeBinary = 1
TransferFile = "True"

Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile(sFullName)

.AddHeader "content-length", objStream.Size
.ContentType= strContentType
.Addheader "Content-Disposition", "attachment; filename=" & chr(34) & sFileName & chr(34)

Do While Not objStream.EOS or objStream.Cancel
.Binarywrite objStream.Read(8192)
Loop

Set objStream = Nothing

End With

' startar allting egentligen
Response.Flush

' försöker skriva till sidan, men det går inte
Response.Write "Kan vi visa detta eller är körningen slut före det?"
response.Flush

%>

</code>

Hälsningar
/Pelle


Svara

Sv: nedladdning

Postades av 2002-11-20 08:20:14 - Patrik Andersson

Jag löste det genom att maila filen till besökaren istället.

//Putte


Svara

Sv: nedladdning

Postades av 2002-11-20 09:45:41 - Andreas Hillqvist

Nu tror jag du skrivit något fel. Om du sätter Buffer till False på Response stänger du väl av Buffering och data skickas när det skrivs till klienten?

För att kontrollera om klienten laddat ner dokumentet kan du använda IsClientConnected egenskapen.

Jag tror oxå man kan lägga till den i loopen som läser filen och på så sätt kunna avbryta skriptet.

Varför anropar du Cancel metoden på Stream objektet. Utdrag från hjälpen:
Use the Cancel method to terminate execution of an asynchronous method call (that is, a method invoked with the adAsyncConnect, adAsyncExecute, or adAsyncFetch option).

Ser inget behov av en With-sats.

Är ju oxå snyggt att stänga stream objektet.

Har försökt att deklarera alla variabler. Men vet inte om jag missat någon. Option Explicit kommer i så fall ge ett felmeddelande.
<code>
<%
Option Explicit
Dim strFileExt
Dim sFileName
Dim sFullName
Dim strContentType

Dim objconn
Dim objStream

Const adReadAll = -1
Const adTypeBinary = 1

Response.Buffer = False

sFileName = "zdtips.zip"
sFullName = Server.MapPath(sFileName)
strFileExt = Lcase(Right(sFileName, 3))

Select Case strFileExt
Case "doc"
strContentType = "application/msword"
Case "xls"
strContentType = "application/x-excel"
Case "ppt"
strContentType = "application/ms-powerpoint"
Case "zip"
strContentType = "application/x-zip-compressed"
Case "pdf"
strContentType = "application/pdf"
Case "gif"
strContentType = "imgage/gif"
Case "jpeg"
strContentType = "image/" & strFileExt
Case "jpg"
strContentType = "image/jpeg"
Case Else
strContentType = "application/x-unknown"
End Select

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile sFullName

Response.ContentType = strContentType
Response.AddHeader "Content-length", objStream.Size
Response.Addheader "Content-Disposition", "attachment; filename=""" & sFileName & """"

Do Until objStream.EOS Or Not Response.IsClientConnected
Response.Binarywrite objStream.Read(8192)
Loop

objStream.Close
Set objStream = Nothing

Set objconn = Server.CreateObject("ADODB.Connection")
objconn.Open

If Response.IsClientConnected Then
objconn.Execute "INSERT INTO TabellNamn (Filnamn, Complet) VALUES ('" & Replace(sFileName, "'", "''") & "', True)"
Else
objconn.Execute "INSERT INTO TabellNamn (Filnamn, Complet) VALUES ('" & Replace(sFileName, "'", "''") & "', False)"
End If

objconn.Close
Set objconn = Nothing
%>
</code>


Svara

Sv: nedladdning

Postades av 2002-11-20 13:42:21 - Pelle Johansson

Andreas, den koden jag visade var ett klipp från ett 10-tal olika sätt att försöka fixa detta. Att använda isClientConnected verkar inte fungera i detta fall. Det hon vill försöka uppnå är att känna av om man trycker avbryt.

/Pelle


Svara

Sv: nedladdning

Postades av 2002-11-20 19:20:43 - Andreas Hillqvist

Om man trycker avbryt innan den påbörjat nerladningen eller om man ladda ned hela filen verkar det fungerar. Däremot om man valt ett ställe att spara det, påbörjar nedladningeng och sedan avbryter. Låser dig hela webservern. Vet någon varför?


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 148
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies