2016-03-24 13 views
0

eksik.
Sorun, indirilen dosyanın sonunun eksik olmasıdır.sonu ben sunucudan bir dosya indirme ile ilgili bazı sorunlar yaşıyorum

Ben benzer sorunlarınız diğer insanların bazı göstergeler bulundu, ancak benim sorunum bana yardımcı bir şey var.

Hata ayıklama yaparken, fileData uzunluğunun doğru olduğunu öğrendim ve BinaryWrite numaralı telefonu ararken tüm veriler bayt dizisinde mevcut. BinaryWrite, Flush veya Close çağrıları bırakır
... Ben yaklaşık Burada örneğin Response.End veya Response.Close kullanmayan okudum:
HttpResponse.End vs HttpResponse.Close vs HttpResponse.SuppressContent ve muhtemel bir sebep gibi görünüyor, ama ne yerine kullanması gereken (çalıştık Response.Close'u tamamen kaldırın, ancak bu çok fazla veri çıkışıyla sonuçlanır.

Birisi bu davranışa neden olabilir ve nasıl düzeltebilirim ne bilir?

DÜZENLEME: Sadece Response.ContentType = "binary/octet-stream"; ile çalıştı ve bir cazibe gibi çalışıyor!
Böyle bir davranışa neden olabilecek metin/düz ve ikili/oktet akışı arasındaki fark nedir? Hatta Close çağrısı olmadan çalışır
...

FAZLA DÜZENLEME: Yanıtların sıkıştırma sunucu tarafında aktive edilmiş gibi görünüyor. Görünüşe göre, sıkıştırma etkinken düz metin akışlarıyla ilgili bir sorun var gibi görünüyor.

Ben kodudur: sıkıştırma sunucu tarafında (IIS) üzerinde aktiftir

private void DownloadFile(byte[] fileData, string fileName, string fileExtension) 
{ 
    Response.Clear(); 
    Response.AddHeader("content-disposition", "attachment; filename=" + fileName + fileExtension); 
    Response.AddHeader("Content-Length", fileData.Length.ToString(CultureInfo.InvariantCulture)); 
    Response.ContentType = "text/plain"; 
    Response.BinaryWrite(fileData); 
    Response.Flush(); 
    Response.Close(); 
} 
+0

Response.Flush(); Yanıt .Close(); Response.End(); – jackjop

+0

Denedim, ama zar yok ... Artık "End" 'e bir çağrı eklemenin ne kadar yararlı olacağından emin olun, çünkü "Close" de başarısız oldu ... Ve benim durumumda "End" ve "Close" aynı şeyi üretecekti çünkü aramadan sonra işleyecek başka bir şeyim yok. – Falchion

+0

hmm, belki dosyanız çok büyük. Bu şekilde deneyebilir misin? (kabul edilen cevapta) http://stackoverflow.com/questions/37650/how-to-implement-a-file-download-in-asp-net – jackjop

cevap

0

Eğer görünüşte metin/düz akışları ile sorun neden olur. benzer sorunları olan

Senin için

devreden çıkartmayı deneyin, bu yardımcı olabilir!

Kesinlikle benim için yaptı

!

İlgili konular