/// <summary>
/// 从远程服务器上下载读取文件,然后转换
/// </summary>
/// <param name="serviceUrl">远程服务地址:示例:https://up.bookresource.net.17sucai.cn/2021/admin/06-10/c4d8d351.pdf</param>
/// <returns></returns>
private static string GetConvertType(string serviceUrl)
{
try
{
System.Net.WebClient client = new System.Net.WebClient();
byte[] buffer = client.DownloadData(serviceUrl);
var base64 = Convert.ToBase64String(buffer);
return base64;
}
catch (Exception ex)
{
return "";
}
}
--------------------------------获取网络图片
/// <summary>
/// 调用方法
/// </summary>
public static void SaveImg()
{
string imgurl = "https://file.ess.tencent.cn/bresource/resource/resource/0/0.PNG?hkey=172060ec3efb8b0f113e32ac127488212c6983fd1ba5f5e88afcd7545741571f0e692ba082c2be384c59c7754c14dbe1d884e708c27cd1d5f4691f00988030f9b257bdef456645572f7554151873cfc978e53a058763844f5cbfa2fd6daef859cc81cb5a3c9359deac76b748d2a2883c";//图片地址
string imgfile = "D:\\1.png";
WriteBytesToFile(imgfile, GetBytesFromUrl(imgurl));
}
/// <summary>
/// 将数据流转化为图片保存到本地
/// </summary>
/// <param name="fileName"></param>
/// <param name="content"></param>
static public void WriteBytesToFile(string fileName, byte[] content)
{
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter w = new BinaryWriter(fs);
try
{
w.Write(content);
}
finally
{
fs.Close();
w.Close();
}
}
/// <summary>
/// 根据url将图片转化为数据流
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
static public byte[] GetBytesFromUrl(string url)
{
byte[] b;
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
WebResponse myResp = myReq.GetResponse();
Stream stream = myResp.GetResponseStream();
using (BinaryReader br = new BinaryReader(stream))
{
b = br.ReadBytes(500000);
br.Close();
}
myResp.Close();
return b;
}
--------------------------------例如腾讯电子签的印章上面方法下载失败可以修改为
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
System.Net.WebClient client = new System.Net.WebClient();
byte[] buffer = client.DownloadData(serviceUrl);
MemoryStream ms = new MemoryStream(buffer );
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
img.Save("dizhi", ImageFormat.Png);