2010-11-11 20 views
1
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(); 

如果:如何在asp.net中安全地讀取流?

從流在單個調用讀閱讀是非常危險的。您假設所有數據都會立即可用,但情況並非總是如此。你應該總是循環閱讀,直到沒有更多的數據。

我應該如何更改上面的代碼使其「不太危險」?

回答

4

喬恩斯基特實際上有一個非常好的博客文章有關的所有不同的方式,人們嘗試讀取數據流,爲什麼每一個壞了(它,他認爲什麼是理想的解決方案結束):

Reading binary data in C#

+0

甜 - 他是'一次讀取流中讀取是非常危險的作者。您假設所有數據都會立即可用,但情況並非總是如此。你應該總是循環閱讀,直到沒有更多的數據。在這個問題上。謝謝! – FiveTools 2010-11-11 17:25:11

相關問題