公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能

admin
2024年3月13日 0:29 本文熱度 1024

1.    using System;

2.    using System.Collections.Generic;

3.    using System.IO;

4.    using System.Linq;

5.    using System.Net;

6.    using System.Text;

7.    using System.Text.RegularExpressions;

8.    using System.Threading.Tasks;

9.     

10. namespace Utils

11. {

12. public class HttpUtil

13. {

14. public static bool isUrl(string url)

15. {

16. // 正則表達(dá)式

17. string pattern = @"^(https?://)?([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?";

18. // 創(chuàng)建正則表達(dá)式對(duì)象

19. Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);

20. // 判斷字符串是否匹配正則表達(dá)式

21. return regex.IsMatch(url);

22. }

23.  

24. public static string DoGet(string url)

25. {

26. string result = string.Empty;

27. try

28. {

29. HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);

30. HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();

31. StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);

32. result = reader.ReadToEnd();//利用StreamReader就可以從響應(yīng)內(nèi)容從頭讀到尾

33. reader.Close();

34. myResponse.Close();

35. }

36. catch

37. {

38. }

39. return result;

40. }

41.  

42. /// <summary>

43. /// 獲取一個(gè)網(wǎng)絡(luò)文件的大小

44. /// </summary>

45. /// <param name="url"></param>

46. /// <returns></returns>

47. public static async Task<long> GetFileSize(string url)

48. {

49. long fileSize = 0;

50. await Task.Run(() =>

51. {

52. try

53. {

54. WebRequest request = WebRequest.Create(url);

55. request.Method = "HEAD";

56. using (WebResponse response = request.GetResponse())

57. {

58. if (long.TryParse(response.Headers.Get("Content-Length"), out fileSize))

59. {

60. return fileSize;

61. }

62. }

63. }

64. catch (Exception)

65. {

66. }

67. return fileSize;

68. });

69. return fileSize;

70. }

71.  

72. /// <summary>

73. /// 斷點(diǎn)續(xù)傳功能

74. /// </summary>

75. /// <param name="fileUrl">下載鏈接</param>

76. /// <param name="saveFilePath">文件保存路徑</param>

77. /// <param name="progress">進(jìn)度百分比</param>

78. /// <returns></returns>

79. public static async Task<double> DownloadFileWithResume(string fileUrl, string saveFilePath, Action<double> progress = null)

80. {

81. long fileSize = 0;

82. if (File.Exists(saveFilePath))

83. {

84. var fileInfo = new FileInfo(saveFilePath);

85. fileSize = fileInfo.Length;

86. }

87.  

88. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fileUrl);

89. request.Method = "GET";

90.  

91. if (fileSize > 0)

92. {

93. //對(duì)比已存在文件與網(wǎng)絡(luò)文件實(shí)際大小,如果相等,則為已下載完成的

94. long realitySize = await GetFileSize(fileUrl);

95. if (realitySize == fileSize)

96. {

97. progress?.Invoke(100);

98. return 100;

99. }

100.           request.AddRange(fileSize);

101.           }

102.               

103.           HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

104.           long contentLength = response.ContentLength + fileSize;

105.           double percentComplete = 0;

106.           using (FileStream fileStream = new FileStream(saveFilePath, FileMode.Append))

107.           {

108.           byte[] buffer = new byte[4096];

109.           using (Stream responseStream = response.GetResponseStream())

110.           {

111.           int bytesRead = 0;

112.           long bytesReceived = fileSize;

113.           while ((bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length)) > 0)

114.           {

115.           await fileStream.WriteAsync(buffer, 0, bytesRead);

116.           bytesReceived += bytesRead;

117.           percentComplete = (double)bytesReceived / (double)contentLength;

118.           progress?.Invoke(percentComplete);

119.           //Console.WriteLine("Download progress: {0:P}", percentComplete);

120.           }

121.           }

122.           }

123.           return percentComplete;

124.           }

125.               

126.           }

127.           }


該文章在 2024/3/13 0:31:15 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 岛国毛片一级一级特 | 国产高清不卡视频在线播放 | 激情一区二区三区 | 精品人妻系列无码人妻不卡 | 91无码视频在线观看免费播放 | 国产免费高清在线精品一区 | 国产一区二区三区在线视頻 | 国产精品无码专区av免费播放 | 精品无码人妻夜 | a级特黄特黄毛片在线播放 a级无码 | 国产日韩无码中文字幕在线综合 | 国产午夜精品一区二区理论影院 | 国产女同毛片精品网站 | 国产一级毛片特级毛片国产 | 丰满人妻一区二区三区46 | 精品无码秘人妻一区二区 | 国产97色在线 | 成人亚洲精品久久99狠狠 | 国产成人精品免费视频大全可播 | 极品尤物日韩精品视频在线播放 | 国产尤物aⅴ在线观看不卡 国产尤物av尤物在线看 | 成年午夜在线无码福利 | 99精品视频在线在线 | 东京热人妻中文无码av | 国产一区二区理论在线观看 | 91人成在线观看网站 | 国产熟女一区二区三区十视频 | 国产成人精品午夜在线观看 | 国产精品国三级国产av | 国产精品国产午夜免费看福利 | 国产精品免费无遮挡无 | 91精品国产闺蜜国产在线闺蜜 | 69成人免费视 | 91久久免费 | 国产区在线观看 | 国产aⅴ无码专区亚洲av | 国产综合变态自虐重口另类 | 国产三级在线观看视频 | 国产av无码亚洲一区二区 | 国产一区二区三区在线播放 | 国产成人喷潮在线观看 |