2013-06-07 6 views
1

Я могу загрузить рис. Webclient и успешно нарисовать на картинке. Но мой вопрос заключается в том, как я могу избежать повторного загрузки одного и того же изображения из сети с использованием системы кеша. Но я не хочу сохранять его на своем стадовом диске.Как загрузить изображение через WebClient

Мой код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim wc As New System.Net.WebClient 
    Dim ImageInBytes() As Byte = wc.DownloadData(TextBox1.Text) 
    Dim ImageStream As New IO.MemoryStream(ImageInBytes) 

    PictureBox1.Image = New System.Drawing.Bitmap(ImageStream) 
    PictureBox1.Refresh() 
End Sub 
+0

Почему бы не хранить его в главной форме приложения до тех пор, пока приложение работает? – Alexander

+0

Это потому, что я должен использовать один и тот же URL-адрес много раз. если я загружу pic, я должен загрузить его снова. Я просто хочу загрузить файл один раз nd, если мне еще нужно изображение, webclient получить изображение из кеша, а не загружать изображение снова.thanks – user1523291

ответ

0

Я верю WebClient DonT поддерживают использование кэш-памяти.

Вы можете попробовать проверить размер изображения, если его разная загрузка, в противном случае использовать тот, который вы уже загрузили.

Этот код будет получить размер изображения, не загружая его:

Dim wc As System.Net.WebClient = New System.Net.WebClient 
wc.OpenRead("http://example.com/ex.png") 
Dim bytes_total As Int64 = Convert.ToInt64(wc.ResponseHeaders("Content-Length")) 
+0

no ithink webclient поддержка кеширования кеширования Ie webclient.CachePolicy = new System.Net.Cache. RequestCachePolicy (System.Net.Cache.RequestCacheLevel.BypassCache) – user1523291

Смежные вопросы