/// <summary> /// 下载 /// </summary> /// <param name="resourceUri">下载地址:/api/downLoadPPT?pptId=3</param> /// <param name="extension">文件后缀</param> /// <param name="downloadPath"></param> /// <returns></returns> public static bool DownloadFile(string resourceUri, string extension, out string downloadPath) { downloadPath = string.Empty; if (string.IsNullOrWhiteSpace(resourceUri)) { return(false); } try { WebRequest request = WebRequest.Create(resourceUri); WebResponse response = request.GetResponse(); using (Stream reader = response.GetResponseStream()) { var userDownloadFolder = UtilsCommonPath.GetDownloadFolder(); downloadPath = Path.Combine(userDownloadFolder, $"{Guid.NewGuid()}{extension}"); //图片路径命名 using (FileStream writer = new FileStream(downloadPath, FileMode.OpenOrCreate, FileAccess.Write)) { byte[] buff = new byte[512]; int c = 0; //实际读取的字节数 while ((c = reader.Read(buff, 0, buff.Length)) > 0) { writer.Write(buff, 0, c); } response.Close(); } } } catch (Exception ex) { return(false); } //下载成功 return(true); }
/// <summary> /// 下载 /// Headers中含有"Content-Disposition" /// </summary> /// <param name="resourceUri">下载地址:/api/downLoadPPT?pptId=3</param> /// <param name="downloadPath"></param> /// <returns></returns> public static bool DownloadWithDisposition(string resourceUri, out string downloadPath) { downloadPath = string.Empty; if (string.IsNullOrWhiteSpace(resourceUri)) { return(false); } try { var userDownloadFolder = UtilsCommonPath.GetDownloadFolder(); var downloadResult = DownloadWithDisposition(resourceUri, userDownloadFolder, out downloadPath); if (downloadResult) { //下载成功 return(true); } } catch (Exception ex) { LogHelper.LogError($"资源{resourceUri}下载失败", ex); } return(false); }