28 messaggi dal 20 febbraio 2001
Ciao a tutti

implementando il codice necessario per il download di file utilizzando ADODB.Stream tutto sembra funzionare fino a che l'utente in questione non decida di cancellare l'eseguzione del download stesso.
A questo punto la sessione IIS resta come "bloccata" e l'unico modo per sbloccarla è uscire da IE (quindi terminarla).
Non c'è un modo per "catturare" in qualche modo questo evento (e mi rendo conto che sia difficile visto che l'operazione è via-Client dal momento che la finistra di download).
Andando in giro qua è là su Imternet, ho trovato alcuni con lo stesso problema ma..ahimè ... nessuna soluzione a riguardo.

Ne ho provate davvero tante..ma non sono arrivato ad alcuna soluzione in proposito...

Dove sbaglio ?

Wintersea

P.S.: Il problema è analogo nel caso in cui l'utente abbia già "scaricato" il file precedentemente e la clssifica finestra di download richieda se vogli sovrascrivere il file. Annullando tale operazione il comportamento di IIS è lo stesso
277 messaggi dal 30 settembre 2003
posta il codice... a me non ha mai dato problema con questo :

<%
Dim objStream, strFileName
strFileName = Request("file")

posizioneBarra = INSTRREV(strFileName, "/" ) + 1
nomeDownload = MID(strFileName,posizioneBarra)

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile Server.MapPath(strFileName)
' Istruiamo il browser sul tipo di file
Response.AddHeader "Content-Disposition", "attachment; filename=" & nomeDownload

Response.ContentType = "application/octet-stream"

Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
%>
28 messaggi dal 20 febbraio 2001
Innanzitutto grazie per la risposta...

Ho eseguito il tuo codice (adattandolo semplicemente alle necessità specifiche, leggendo directory di download e nomefile da un database....niente di sconvolgente insomma) e ne risulta questo:

<%
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile Server.MapPath(DwnPath&"/"&NomeFile)
' Istruiamo il browser sul tipo di file
Response.AddHeader "Content-Disposition", "attachment; filename=" & NomeFile

Response.ContentType = "application/octet-stream"

Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
%>

Il problema a me persiste (non so, puoi provare anche tu) sia annullando l'operazione in corso (con il download in corso insomma) sia annullando l'operazione prima di iniziare ad effettuare il download stesso....caso strano dopo la 2° volta (!) che ripeti tali operazioni d'annullamento.

Il mio codice originale è leggermente diverso (in previsione di file molto grandi)...eccolo :

<%
Function StringToBinary(String)
Dim I, B
For I=1 to len(String)
B = B & ChrB(Asc(Mid(String,I,1)))
Next
StringToBinary = B
End Function
%>

<%
response.contentType = "application/octet-stream"
response.AddHeader "content-disposition", "attachment; filename=" & NomeFile

set fs = Server.CreateObject ("Scripting.FileSystemObject")
set binfile = fs.OpenTextFile(Server.MapPath(DwnPath&"/"&NomeFile))

fileSize = fs.getFile(Server.MapPath(DwnPath&"/"&NomeFile)).size

for i = 1 to fileSize
if not Response.IsClientConnected then
binfile.close
set binfile = Nothing
response.clear
response.end
end if
response.binarywrite StringToBinary(binfile.read(1024*16))
response.flush
next

binfile.close
set binfile = Nothing
%>

Come vedi cerco di controllare se il Client che effettua il download è ancora connesso e "spacchettare" il download in piccole porzioni per essere sicuro della trasmissione.
Cerco anche su Microsoft in particolare...la cosa "delle due volte" è curiosa.

wintersea

P.S.: Ho controllato su alcuni server di posta tipici, tipo ad esempio Yahoo ed anche lui ha lo stesso problema, anche perfino con Hotmail giocandoci un po' con annulla!
Modificato da wintersea il 03 dicembre 2004 16.28 -
28 messaggi dal 20 febbraio 2001
News:
Ulteriori prove non hanno ahimè dato esito positivo...

L'unico modo possibile è quello di riuscire a "catturare" l'evento Client...ma non trovo nulla a riguardo...
Provo ancora (utilizzando WinInet ??? )

wintersea
28 messaggi dal 20 febbraio 2001
...up...(sperando che qualcuno abbia un idea o un consiglio).....
Modificato da wintersea il 16 dicembre 2004 11.51 -
Modificato da wintersea il 17 dicembre 2004 16.57 -
28 messaggi dal 20 febbraio 2001
...up....(sempre speranzoso di una  !!!
28 messaggi dal 20 febbraio 2001
...ehm...come regalo di Natale.... ...mi accontenterei anche di qualcuno che abbia verificato lo stesso problema.....

wintersea
28 messaggi dal 20 febbraio 2001
Ulteriori test a riguardo...

..sembra che il problema sia legato alla versione di IE....dalla versione 6 il problema sembra proprio non esserci....

bah...

wintersea

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.