Ciao a tutti,
ho trovato sul web un semplice metodo per scaricare un file visualizzando una progress bar.
Funiona perfettamente se nel codice scrivo un URL statico
Dato che l'URL da dove scaricare il file non è fisso, ma deve essere determinato, ho problemi a convertire una stringa in URI.codice:Private Sub ButtonDownload_Click(sender As System.Object, e As System.EventArgs) Handles ButtonDownload.Click Dim client As WebClient = New WebClient AddHandler client.DownloadProgressChanged, AddressOf client_ProgressChanged AddHandler client.DownloadFileCompleted, AddressOf client_DownloadCompleted client.DownloadFileAsync(New Uri("http://www.sito.it/file.abc"), "file.abc") 'parte del codice che da errore se invece di scrivere il link metto una variabile sting ButtonDownload.Text = "Download in Progress" ButtonDownload.Enabled = False End Sub Private Sub client_ProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Dim bytesIn As Double = Double.Parse(e.BytesReceived.ToString()) Dim totalBytes As Double = Double.Parse(e.TotalBytesToReceive.ToString()) Dim percentage As Double = bytesIn / totalBytes * 100 ProgressBar1.Value = Int32.Parse(Math.Truncate(percentage).ToString()) End Sub Private Sub client_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) MessageBox.Show("Download Complete") ButtonDownload.Text = "Start Download" ButtonDownload.Enabled = True End Sub
dim a as string 'cioè "www.sito.it/" parte fissa
dim b as string 'poi c'è la parte di autenticazione "user-password/"
dim c as string 'query da scaricare "varia a seconda del report interessato"
dim URL as string = a & b & c
Il file lo riesco a scaricare tranquillamente con il metodo classico, ma con questo sistema no, mi da errore, in pratica nel codice ci deve essere scritto l'url non una variabile.
C'è modo di risolvere? Converire?
Grazie
P.S.: Dato che il report può essere anche 10Mb questa funzione mi è molto utile, nel mio caso il report arriva a 2Mb

Rispondi quotando