[英]How do I safely read from a stream in asp.net?
byte[] bytes = new byte[uploader.UploadedFiles[0].InputStream.Length];
uploader.UploadedFiles[0].InputStream.Read(bytes, 0, bytes.Length);
var storedFile = new document();
string strFullPath = uploader.UploadedFiles[0].FileName;
string strFileName = Path.GetFileName(strFullPath);
storedFile.document_id = Guid.NewGuid();
storedFile.content_type = uploader.UploadedFiles[0].ContentType;
storedFile.original_name = strFileName;
storedFile.file_data = bytes;
storedFile.date_created = DateTime.Now;
db.documents.InsertOnSubmit(storedFile);
db.SubmitChanges();
如果:
在對 Read 的單個調用中從流中讀取是非常危險的。 您假設所有數據都將立即可用,但情況並非總是如此。 您應該始終循環閱讀,直到沒有更多數據為止。
我應該如何更改上面的代碼以使其“不那么危險”?
Jon Skeet 實際上有一篇非常好的博客文章,介紹了人們嘗試閱讀 Streams 的所有不同方式以及每種方式都被破壞的原因(以他認為的理想解決方案結尾):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.