0

私はC#ダウンロード方法を使用して、画像がダウンロードされる画像をダウンロードしていますが、その空の画像を使用しないか、破損した画像が開きません。

問題は、画像に異常なリンクがあることです:

http://www.example.com/image1.php

他のようなものの代わりに:

http://www.example.com/img1.jpg

したがって、そのような画像をダウンロードする方法は、ブラウザを使用して画像に移動し、ダウンロードとして保存をクリックした場合です。

コード:

 System.Net.WebClient client = new System.Net.WebClient();
 picname = "testingimage";
 client.DownloadFile(imagepath, filepath + picname + ".jpg");

それを儀式する他の方法があるかどうか私に知らせてください。

画像のURL:

<img src="http://www.abx.com/img1.php" alt="http://www.abx.com/img1.php" class="decoded">
4

2 に答える 2

0

PHPスクリプトが、期待される戻りタイプ、つまりデフォルトでHTMLの要求ヘッダーをチェックしているように見えますが、要求が画像を要求している場合は、画像のみが返されます。私はclient.DownloadFile以前に使用したことがないので、その中でヘッダーをどのように設定するかわかりません。しかし、それを調べる価値があるかもしれません。

于 2012-09-20T09:14:31.777 に答える
0

私はそれを解決しましたが、長いルートを使用して、そのページにログインするための別のスレッドを作成しWEBBROWSER、コントロールを使用して画像を保存します:

画像を保存するコード:

 IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
                    IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();
 string imagename = string.Empty;
 try
 {
 foreach (IHTMLImgElement img in doc.images)
   {
     imgRange.add((IHTMLControlElement)img);
     imgRange.execCommand("Copy", false, null);
     using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
        {
            bmp.Save(@"c:\testImage\TestPic.jpg");
        }
     imagename = img.nameProp;
     break;

   }
 }
 catch (System.Exception aaa)
 {

 }
于 2012-09-20T13:35:37.953 に答える