[英]C# Download an image from URL
我使用一個網站獲取有關wifi使用情況的統計信息。 該網站創建數據圖形表示的圖像。 它的操作方式是由用戶設置日期。 例如,可以說這是上個月的統計數據。 該網站生成一個URL,然后將其發送到服務器,服務器將返回圖像。 鏈接的示例如下:
問題是,我正在制作一個第三方程序,該程序將下載此圖像以供我的程序使用。 但是,我無法使用該文件。 就像文件損壞了一樣。 我嘗試了幾種方法,但也許有人可以建議其他方法。 基本上,如何從URL鏈接下載服務器生成的圖像?
聚苯乙烯
只是注意到,如果我通過瀏覽器右鍵單擊下載文件並保存,則圖像下載的大小為17千字節左右。 但是,如果我使用WebClient方法下載圖像,則它只會下載1.5kb。 為什么會這樣呢? 似乎WebClient方法沒有完全下載。
目前我的代碼
if (hrefAtt == "Usage Graph")
{
string url = element.getAttribute("src");
WebClient client = new WebClient();
client.DownloadFile(url, tempFolderPath + "\\" + currentAcc + "_UsageSummary.png");
wd.AddImagesToDoc(tempFolderPath + "\\" + currentAcc + "_UsageSummary.png");
wd.SaveDocument();
}
TempFolderPath是我的桌面\\ TempFolder \\
更新隨機地,我決定用記事本查看文件的原始數據,有趣的是,圖像數據實際上是網站首頁html代碼的副本,而不是圖像的原始數據:S,這有什么意義?
這將下載Google徽標:
var img = Bitmap.FromStream(new MemoryStream(new WebClient().DownloadData("https://www.google.co.uk/images/srpr/logo11w.png")));
首先,您必須了解鏈接紋理。 如果所有鏈接相同或彼此接近,則必須使用substring / remove / datetime等方法來建立新的請求鏈接。 例如;
string today = DateTime.Now.ToShortDateString();
string generatedLink = @"http://www.yoururl.com/image + " + today + ".jpg";
string generatedFileName = @"C:\Usage\usage + " + today + ".jpg";
WebClient wClient = new WebClient();
wClient.DownloadFile(generatedLink, generatedFileName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.