通过Http地址,获取数据,同时将附件文件存放到指定的本地服务器文件夹下

 

/// <summary>
        /// 通过链接地址将文件存放在本地环境,并获取所需的相关信息
        /// </summary>
        /// <param name="uploadPath">下载的链接</param>
        /// <param name="filePath">指定到需要存放的文件夹下</param>
        /// <returns></returns>
        public bool GetAttachmentUrl(string uploadPath,string filePath) 
        {
            try
            {
                //通过链接地址获取文件名+后缀
                string fileNameAndExt = Path.GetFileName(uploadPath);
                //下载操作
                ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);//防止拦截
                HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(uploadPath);
                HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
                Stream stream = response.GetResponseStream();
                var localPath = Path.Combine("E:\\project\\Temp\\Data",filePath);
                var path = localPath + "\\" + fileNameAndExt;
                //判断路径是否存在,不存在则创建
                if (!Directory.Exists(localPath)) 
                {
                    Directory.CreateDirectory(localPath);
                }
                if (File.Exists(path)) //先删除后保存
                {
                    File.Delete(path);
                }
                //文件保存到指定位置
                Stream fileStream = new FileStream(path, FileMode.Create);
                byte[] by = new byte[1024];
                int isize = stream.Read(by, 0, (int)by.Length);
                
                while (isize > 0)
                {
                    fileStream.Write(by, 0, isize);
                    isize = stream.Read(by, 0, (int)by.Length);
                }
               // fileStream.Length 文件大小FileSize
                
                fileStream.Close();
                stream.Close();
                response.Close();
                request.Abort();
                return true;
            }
            catch (Exception ex)
            {
                this.Message=new Message(ex.Message);
                return false;
            }
        }

 /// <summary>
        /// 重写验证
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="certificate"></param>
        /// <param name="chain"></param>
        /// <param name="errors"></param>
        /// <returns></returns>
        public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值