2011-07-21 43 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方法可为您执行此操作),并将其保存到上传流中。试图从同一个流中多次读取图像效果不佳,可能根本无法使用。 –