mercoledì, aprile 09, 2008

Asp.Net file Download Confirmation

Per verificare che il client scarichi completamente un file dal vostro server, è necessario implementare una pagina di passaggio che legga lo stream del file e lo invii al client.
Durante l'invio è sufficiente verificare che la proprietà Response.IsClientConnected rimanga a True per tutto il tempo necessario.
Ecco un esempio:


Response.Clear()
Dim b(1024 * 128) As Byte
Dim DownLoadAbort As Boolean = False
Dim f As IO.FileStream = New IO.FileStream("c:\filename.txt", IO.FileMode.Open)
Response.AddHeader("Content-Disposition", "attachment;filename=filename.txt")
Response.AddHeader("Content-Length", f.Length.ToString)
Do While f.Position < f.Length
f.Read(b, 0, 1024 * 128)
Response.OutputStream.Write(b, 0, 1024 * 128)
If Not Response.IsClientConnected Then
DownLoadAbort = True
Exit Do
End If
Response.Flush()
Loop
f.Close()

If Not DownLoadAbort Then
'DOWNLOAD COMPLETED SUCCESFULLY
Else
End If
Response.End()



#