簡體   English   中英

當我在C#中通過HttpWebRequest上傳大文件時,我得到Stream太長異常

[英]When I upload large files by HttpWebRequest in C# I get Stream was too long exception

我有一個簡單的功能,可以通過網頁上傳文件。 當我上傳大小為16 MB的文件時,它可以工作,但是如果嘗試使用更大的文件,例如。 57 MB,程序拋出
Stream was too long exception

Stream memStream = new MemoryStream();            

for (int i = 0; i < files.Length; i++)
            {
                memStream.Write(boundarybytes, 0, boundarybytes.Length);
                var header = string.Format(headerTemplate, "uplTheFile", files[i]);
                var headerbytes = Encoding.UTF8.GetBytes(header);

                memStream.Write(headerbytes, 0, headerbytes.Length);

                using (var fileStream = new FileStream(files, FileMode.Open, FileAccess.Read))
                {
                    var buffer = new byte[fileStream.Length];
                    var bytesRead = 0;
                    while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        memStream.Write(buffer, 0, bytesRead);
                    }

                }
            }

            memStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
            request.ContentLength = memStream.Length;

            using (Stream requestStream = request.GetRequestStream())
            {
                memStream.Position = 0;
                byte[] tempBuffer = new byte[memStream.Length];
                memStream.Read(tempBuffer, 0, tempBuffer.Length);
                memStream.Close();
                requestStream.Write(tempBuffer, 0, tempBuffer.Length);
            }

            using (var response = request.GetResponse())
            {
                Stream stream2 = response.GetResponseStream();
                StreamReader reader2 = new StreamReader(stream2);
                return reader2.ReadToEnd();
            }

我用這種方式初始化請求。

    HttpWebRequest request = HttpWebRequest.Create(url);
    request.Timeout = 3600000;
    request.Method = "POST";
    request.KeepAlive = true;

那么,您要連接的服務器有限制嗎? 在這種情況下,您無論如何都無法上傳?

for (int i = 0; i < files.Length; i++)是問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM