ASP.NET MVC için büyük dosya yüklenenler izle
Üzerinde çalıştığım bir uygulama için, Kullanıcı çok büyük dosyaları yüklemek için izin istiyorum--yani, birçok gigabayt web sitemiz üzerinden potansiyel olarak. Ne yazık ki, ASP.NET MVC bu hizmet için kesinlikle ideal bir uygulama için başlamadan önce RAM içine tüm isteği yük gibi görünüyor. Özellikle, aşağıdaki gibi bir kod ile bu sorunu atlatmaya çalışıyoruz:
if (request.Method == "POST")
{
request.ContentLength = clientRequest.InputStream.Length;
var rgbBody = new byte[32768];
using (var requestStream = request.GetRequestStream())
{
int cbRead;
while ((cbRead = clientRequest.InputStream.Read(rgbBody, 0, rgbBody.Length)) > 0)
{
fileStream.Write(rgbBody, 0, cbRead);
}
}
}
tampon--istek--RAM zihniyet. atlatmak için başarısız. Kolay bir şekilde bu davranışa geçici bir çözüm var mı?
CEVAP
Benim ilk kod temelde doğru olduğu ortaya çıktı; tek değişiklik gerekli değişikliği oldu
request.ContentLength = clientRequest.InputStream.Length;
için
request.ContentLength = clientRequest.ContentLength;
Eski içerik uzunluğunu belirlemek için tüm istek dere; ikincisi başlıklarını tam olarak gönderilen sadece gerektirir sadece Content-Length
Başlığı denetler. Bu IIS tamamen özgün sorunu ortadan kaldırır isteği hemen, streaming başlamak için izin verir.
Nasıl Git deposu tarih commit/kaldırma...
En iyi C bayt bir dizi halinde büyük b...
Ne kadar büyük dosya okumak için pytho...
Kullanarak birden fazla dosya ile daha...
Python Büyük Dosya Okuma için tembel Y...