我試圖從URL下載的圖像保存: http://appworld.blackberry.com/webstore/servedimages/340582.png?t=2圖像從URL問題
我使用HttpWebRequest
webRespose
Stream
BinaryReader
FileStream
BinaryWriter
這適用於其他網站和圖片,但我給的網址以上給了我一個空的0字節的文件..
這意味着我無法將圖像從該URL保存。
有沒有人誰可以幫我?
我試圖從URL下載的圖像保存: http://appworld.blackberry.com/webstore/servedimages/340582.png?t=2圖像從URL問題
我使用HttpWebRequest
webRespose
Stream
BinaryReader
FileStream
BinaryWriter
這適用於其他網站和圖片,但我給的網址以上給了我一個空的0字節的文件..
這意味着我無法將圖像從該URL保存。
有沒有人誰可以幫我?
我使用HttpWebRequest的webRespose流BinaryReader在的FileStream的BinaryWriter
爲什麼使用6個不同的類時,你可以做同樣的只有一個?
string sourceUrl = "http://appworld.blackberry.com/webstore/servedimages/340582.png?t=2";
string localPath = @"C:\foo\bar\340582.png";
using (WebClient wc = new WebClient())
{
wc.DownloadFile(sourceUrl, localPath);
}
如果您需要從該網址加載圖像,你可以做到這一點(我假設你正在使用的WinForms/GDI):
string sourceUrl = "http://appworld.blackberry.com/webstore/servedimages/340582.png?t=2";
string localPath = @"C:\foo\bar\340582.png";
Image image;
using (WebClient wc = new WebClient())
using (Stream stream = wc.OpenRead(sourceUrl))
{
image = Image.FromStream(stream);
}
+1。WebClient就是要走的路 –
你是英雄托馬斯!魅力;)但是我需要得到它的圖像img = wc.MethodName;我怎樣才能獲得圖像的圖像對象? –
你的答案是偉大的,尤其是托馬斯的方法工作得很好,代碼行太少 然而,我需要從url到另一個圖像對象獲得圖像。有沒有辦法做到這一點,而不需要下載文件。我對我的第一個問題感到抱歉,我以錯誤的方式問,這是我的錯誤。完美 –
我不知道您是否擊中了他們的網站太多次,他們現在阻止你濫用...
最有可能的,他們正在檢查發送的頭,而不是讓機器人抓住自己的知識產權。
兩個可能的解決方案浮現在腦海中:
你或許應該一舉兩得。
的一點是,我懷疑這是一個代碼問題,更可能侵犯他們的服務條款。
和樂趣:
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
// Setting the useragent seems to resolve certain issues that *may* crop up.
httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
謝謝,但我該如何將我的請求代碼更改爲可信的瀏覽器標題? –
HttpWebRequest webRequest =(HttpWebRequest)HTtpWebRequest.Create(imageUrl); webRequest.UserAgent =「Mozilla/4.0(compatible; MSIE 7.0; Windows NT 5.1); –
@Val Nolav:查看更新 – NotMe
我只是測試了這一點,這和下載爲我保存了圖像。您可能需要檢查MIME類型以及沿途的所有地方。
string url = "http://appworld.blackberry.com/webstore/servedimages/340582.png?t=2";
using (System.Drawing.Image img = System.Drawing.Image.FromStream(WebRequest.Create(url).GetResponse().GetResponseStream())) {
img.Save("new.jpg");
}
Kluminotty,非常感謝朋友您的回答解決了我的問題 –
不是問題,我看到這篇文章,並意識到我剛剛在幾個星期前通過我正在完成的一個Web應用程序經歷了這個。不共享知識就是知識丟失。 –
您可以右鍵單擊圖像並將其保存到您的硬盤:) –
不,我現在只是嘗試它,克里斯。問題是,當我試圖在瀏覽器上打開這個圖像時,它告訴我需要安裝quicktimes插件。我可以看到圖像,但是當我複製並粘貼直接鏈接時,它會告訴我安裝該插件。 –
東西顯然是你的代碼錯誤,但如果你不張貼,這是很難說什麼是錯的... –