无法在 ASP.NET C# Web 应用程序中使用 webclient 类上传大文件

编程


我需要使用此代码将文件上传到病毒检查站点

C#
public string Scan(string file)
{
    var v = new NameValueCollection();
    v.Add("key", APIKey);
    var c = new MyWebClient() { QueryString = v };
    
    c.Headers.Add("Content-type", "binary/octet-stream");
    ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
    byte[] b = c.UploadFile(scan, "POST", file);
    string json = Encoding.Default.GetString(b);
    var r = ParseJSON(json);
    if (r.ContainsKey("scan_id"))
    {
        return r["scan_id"];
    }
    throw new Exception(r["result"]);
}

此代码适用于较小的文件,但一旦我尝试上传 50 MB 大小的文件,就会出现异常

远程服务器返回错误:(413) 请求实体太大。

我确实查找了此错误并尝试将 maxAllowedContentLength 和 maxRequestLength 值增加到 2147483647

这没有帮助。 无论我做什么,我总是会收到上述错误

有没有办法使用 WebClient 类将大文件上传到网站? 有没有其他方法可以在 ASP.NET Web 表单中上传较大的文件?

预先非常感谢

我尝试过的:

我确实查找了此错误并尝试将 maxAllowedContentLength 和 maxRequestLength 值增加到 2147483647

解决方案1

错误消息非常明确。 服务器配置为仅允许上传小于 50MB 的文件。 您无法在代码中对此做任何事情。

如果您不控制服务器代码和配置,则无法解决此问题。

コメント

タイトルとURLをコピーしました