3

次のコードを使用して、HttPostedFileBase オブジェクトからバイト配列を取得しています。

byte[] mobileAppByteArray = default(byte[]);
using (MemoryStream ms = new MemoryStream())
{
  httpPostedFileObject.InputStream.CopyTo(ms);
  mobileAppByteArray = ms.GetBuffer();
}

httpPostedFileObject の元のサイズは 3191KB ですが、上記の変換を行ってディスクに保存すると、ファイル サイズは 4096KB になります。

のデフォルトのバッファ サイズが 4096 であることは理解していますCopyToが、バッファ サイズを 1024 に変更しても結果は同じで、ファイル サイズは 4096KB です。

ディスクに保存した後、ファイルが 3191KB のままになるようにコードを変更するにはどうすればよいですか?

4

1 に答える 1

5

これGetBufferは、入力ストリームからのバイトで満たされた部分だけでなく、基礎となるバッファー全体を返すためです。ToArray代わりにメソッドを使用してみてください:

mobileAppByteArray = ms.ToArray();
于 2013-06-18T21:14:24.750 に答える