using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
public class SliceUpload
{
private readonly HttpClient _httpClient;
public SliceUpload(HttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task UploadFileSlicesAsync(string filePath, string uploadUrl, int sliceSize)
{
using (FileStream fileStream = File.OpenRead(filePath))
{
long fileLength = fileStream.Length;
byte[] buffer = new byte[sliceSize];
int read;
int sliceStart = 0;
while (sliceStart < fileLength)
{
read = await fileStream.ReadAsync(buffer, 0, sliceSize);
using (MemoryStream sliceStream = new MemoryStream(buffer, 0, read))
{
using (ByteArrayContent content = new ByteArrayContent(sliceStream.ToArray()))
{
// 這里可以添加必要的HTTP頭信息,比如切片索引、總切片數(shù)等
var response = await _httpClient.PostAsync(uploadUrl, content);
response.EnsureSuccessStatusCode();
}
}
sliceStart += read;
}
}
}
}
// 使用方法
var httpClient = new HttpClient();
var sliceUpload = new SliceUpload(httpClient);
await sliceUpload.UploadFileSlicesAsync("path/to/your/large/file",
"http://your.upload.server/upload", 1024 * 1024); // 切片大小為1MB
c# 切片上傳文件
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 切片上傳一般用于大型文件上傳,切成多個(gè)部分分開上傳。 整體實(shí)現(xiàn)思路: 預(yù)先設(shè)置切片大小。 計(jì)算總切片次數(shù) 循環(huán)調(diào)用...
- 一、下載文件 二、上傳文件 三、總結(jié) 1、下載:讀取響應(yīng)流 2、上傳:寫入請(qǐng)求流
- 如下圖:直接抄的官方樣例,一開始以為是上傳區(qū)域出問(wèn)題,試過(guò)簡(jiǎn)單上傳和分片上傳均上傳失敗,返回Code=0,必須要把...
- using System; using System.Collections.Generic; using Sys...