2011-07-21 92 views
2

我試圖使用HttpPostedFile.InputStream將圖像文件上傳到存儲庫,並使用相同的流調整爲不同的縮略圖大小。不止一次使用流

  • 步驟1.使用流Sm = HttpPostedFile.InputStream我能夠 上傳文件成功。
  • 第2步。使用相同的流將圖像調整爲不同的大小。 但總是我得到錯誤說流被使用。

假設如果我跳過步驟1並只執行第2步,我可以將輸入流(圖像)調整爲不同的大小。基本上它讓我只使用inputStream一次。

我該如何實現按順序處理第1步和第2步?

我曾嘗試將inputStream存儲到一個變量,併爲每一步使用單獨的副本,但沒有運氣。

有人可以建議/幫助我嗎?

非常感謝您

+0

顯示此問題的獨立代碼片段可能有所幫助 –

回答

4

你沒有設置Stream.Position 0再使用它之前?

通過存儲在多個變量中,您可能只會複製對內存中同一對象的引用。

+0

Thekip在重用之前,我沒有將任何** stream.position **設置爲0。我怎樣才能做到這一點? – Ajay

+0

首次使用後重置流(位置是流上的屬性)。 – thekip

0

如果您使用此流將多個不同的圖像上傳到服務器,那麼您可能希望爲要上傳的每個文件打開一個新流,而不是嘗試使用單個流上傳所有文件。

+0

傑森,我正在使用一個流上傳每個文件。上傳時,當我使用**相同的流**調整圖像大小時出錯。 – Ajay

+0

@ajay。最好的方法是首先將數據加載到Image對象中。然後,您可以多次使用該圖像來生成大量縮略圖(有一個特定的Image方法可爲您執行此操作),並將其保存到上傳流中。試圖從同一個流中多次讀取圖像效果不佳,可能根本無法使用。 –