远程图片文件下载本地

        /// <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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
############################################################################### # Set default behavior to automatically normalize line endings. ############################################################################### * text=auto ############################################################################### # Set default behavior for command prompt diff. # # This is need for earlier builds of msysgit that does not have it on by # default for csharp files. # Note: This is only used by command line ############################################################################### #*.cs diff=csharp ############################################################################### # Set the merge driver for project and solution files # # Merging from the command prompt will add diff markers to the files if there # are conflicts (Merging from VS is not affected by the settings below, in VS # the diff markers are never inserted). Diff markers may cause the following # file extensions to fail to load in VS. An alternative would be to treat # these files as binary and thus will always conflict and require user # intervention with every merge. To do so, just uncomment the entries below ############################################################################### #*.sln merge=binary #*.csproj merge=binary #*.vbproj merge=binary #*.vcxproj merge=binary #*.vcproj merge=binary #*.dbproj merge=binary #*.fsproj merge=binary #*.lsproj merge=binary #*.wixproj merge=binary #*.modelproj merge=binary #*.sqlproj merge=binary #*.wwaproj merge=binary

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值