2011-07-21 23 views
2

HttpPostedFile.InputStreamを使用して画像ファイルをリポジトリにアップロードしようとしていて、同じストリームを使用して異なるサムネイルサイズにサイズを変更しています。 ストリームSM = HttpPostedFile.InputStream私は に正常にファイルをアップロードできる午前を使用してストリームを複数回使用する

  • ステップ1。
  • ステップ2.同じストリームを使用して、画像をさまざまなサイズにリサイズします。 しかし、いつも私はエラーがストリームが使用されているという意味です。

手順1をスキップして手順2のみを実行すると、入力ストリーム(画像)のサイズをさまざまなサイズに変更できるとします。基本的には、inputStreamを1回だけ使用するようにしています。

ステップ1と2の両方を順番に処理するにはどうしたらよいですか?

私は変数にinputStreamを格納しようとしましたが、ステップごとに別々のコピーを使用しましたが運がありません。

誰かが助けてくれますか?

非常

ありがとう
+0

問題を示す孤立したコードスニペットが役に立ちます –

答えて

4

は、あなたはそれを再利用する前に0にStream.Positionを設定したのですか?

複数の変数に格納することで、おそらくメモリ内の同じオブジェクトへの参照を複製するだけです。

+0

Thekip、再利用する前に** stream.position **を0に設定しませんでした。どうやってやるの? – Ajay

+0

最初にストリームをリセットした後(位置はストリーム上のプロパティ) – thekip

0

このストリームを使用して複数の異なる画像をサーバーにアップロードしている場合は、アップロードするファイルごとに新しいストリームを開き、すべてのストリームを1つのストリームでアップロードすることをお勧めします。

+0

Jason、1つのストリームを使用して各ファイルをアップロードしています。画像のサイズを変更するために**同じストリーム**を使用してアップロードした後、エラーが発生しています。 – Ajay

+0

@ajay。最良の方法は、最初にImageオブジェクトにデータをロードすることです。その後、イメージを複数回使用して、サムネイルをたくさん生成します(これを行う特定のImageメソッドがあります)。そして、アップロードストリームに保存します。同じストリームから複数回画像を読み取ろうとすると、せいぜい非効率的になり、まったく機能しなくなる可能性があります。 –

関連する問題