InputStream只能讀取一次的解決辦法 C# byte[] 和Stream轉換

來源:互聯網
上載者:User

標籤:數組   pos   決定   exce   bytes   cep   mem   操作   前台   

x

情景--->>>
匯入檔案的時候,前台傳過來一個檔案,後台接到: HttpPostedFileBase file = Request.Files[0];
由於對這個檔案幕後處理比較多,讀取裡面的內容,還要將其轉換為Stream寫入一個新的檔案...
以前的做法是↓
建立一個MemoryStream執行個體進行操作>>>Stream stream = new MemoryStream();file.InputStream.Seek(0, SeekOrigin.Begin);file.InputStream.CopyTo(stream);

x

今天我還是這麼做,報錯了...決定找個一勞永逸的方法,搜尋出來的都是Java的解決方案...不過中心思想把握了:"但第一次讀取InputStream對象後,第二次再讀取時可能已經到Stream的結尾了(EOFException)或者Stream已經close掉了。"可以放到byte數組裡面,想用的話,直接轉換為檔案流就行了!!!
x現在解決方案x就是想講Stream轉換為byte[]就行了>>>
Stream stream = file.InputStream;//new MemoryStream();byte[] bytes = new byte[stream.Length];stream.Read(bytes, 0, bytes.Length);//設定當前流的位置為流的開始stream.Seek(0, SeekOrigin.Begin);//將bytes轉換為流//Stream newStream = new MemoryStream(bytes);

完美...至少現在沒報錯...哈哈...

 

 

x

InputStream只能讀取一次的解決辦法 C# byte[] 和Stream轉換

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.