使用 HttpClient 上传文件

Upload file using HttpClient

我需要通过 api 从客户端向服务器上传任何文件视频、图像和文档 此代码适用于我,但适用于小于 2MB 的文件 我无法下载最大 10 , 20MB 的文件 我尝试更改代码和样式 我也把它转换成一个byte[]并拆分成几个文件,但是没有用 请帮忙

此客户代码

uri = new Uri(WebAPIUrl + "setimg/");
        try
        {
            var content = new MultipartFormDataContent();
            if(mediafile!=null)
            {

                var streamContent = new StreamContent(mediafile);
                streamContent.Headers.Add("Content-Type", "application/octet-stream");
                content.Add(streamContent, "\"img\"", $"\"{mediafile.Name}\"");


            }
         
            string json = JsonConvert.SerializeObject(u);
            StringContent content1 = new StringContent(json, Encoding.UTF8, "application/json");
            content.Add(content1, "value");
            bool fin = false;
            do
            {
                fin = true;
                var response = await client.PostAsync(uri, content);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsStringAsync();
                    try
                    {
                        var Items = JsonConvert.DeserializeObject<List<string>>(result);
                        return Items;
                    }
                    catch
                    {
                        
                        
                    }

}

此服务器代码

    public List<string> upload()
    {
        var httpRequset = HttpContext.Current.Request;
        string imageslink = "";
        if (httpRequset.Files.Count > 0)
        {
            foreach (string file in httpRequset.Files)
            {
                var postedfile = httpRequset.Files[file];
                var filename = postedfile.FileName.Split('\').LastOrDefault().Split('/').LastOrDefault();
                // var filepath = HttpContext.Current.Server.MapPath("~/Uploads/" + filename);
                imageslink += "D:\casting\" + filename + ";";
                var filepath = "D:\casting\" + filename;
                postedfile.SaveAs(filepath);
            }

请帮忙

与朋友交流后 查找了很多,发现问题的原因是服务器本身iis 因为它给出了 2 兆字节的最大上传限制的默认值

解决服务器在iis上的问题

IIS -> 网络。配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <!-- ~ 2GB -->
    <httpRuntime maxRequestLength="2147483647" /> // kbytes
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- ~ 4GB -->
        <requestLimits maxAllowedContentLength="4294967295" /> // bytes
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>