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