クライアントが画像の URL を持っている場合、HTTP を使用してダウンロードしないのはなぜでしょうか? それとも、画像は常に WebService が実行されている同じサーバーに存在し、WebService メソッドは URL を受け取り、それをローカル パスに変換し、画像をバイト配列として返す必要があると言っているのですか?
ほぼ同じことを行う WSDL WebService のメソッドがあります。URL のプロトコルとホストの部分は含めません (冗長になるため)。
[WebMethod]
public byte[] GetPicture(string ImageURL)
{
if (ImageURL.StartsWith("http"))
return new byte[0];
string tmp = System.Web.Hosting.HostingEnvironment.MapPath("/" + ImageURL);
string FileName = Microsoft.JScript.GlobalObject.unescape(tmp);
if (System.IO.File.Exists(FileName))
{
FileStream fs = System.IO.File.OpenRead(FileName);
byte[] buf = new byte[fs.Length];
fs.Read(buf, 0, (int)fs.Length);
fs.Close();
return buf;
}
else
return new byte[0];
}
それはあなたの質問に答えていますか?