This topic has not yet been rated - Rate this topic

HttpPostedFile.InputStream Property

Gets a Stream object that points to an uploaded file to prepare for reading the contents of the file.

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)
public Stream InputStream { get; }

Property Value

Type: System.IO.Stream
A Stream pointing to a file.

The following code example shows how to read the contents of the first file in the client's file collection into a byte array, and then copy the byte array to a string.


using System;
using System.Web;
using System.Web.UI;

public class Page1: Page
{
 protected string MyString;
 private void Page_Load(Object sender, EventArgs e)
 {
   HttpFileCollection MyFileCollection;
   HttpPostedFile MyFile;
   int FileLen;
   System.IO.Stream MyStream;

   MyFileCollection = Request.Files;
   MyFile = MyFileCollection[0];

   FileLen = MyFile.ContentLength;
   byte[] input = new byte[FileLen];

   // Initialize the stream.
   MyStream = MyFile.InputStream;

   // Read the file into the byte array.
   MyStream.Read(input, 0, FileLen);

   // Copy the byte array into a string.
   for (int Loop1 = 0; Loop1 < FileLen; Loop1++)
     MyString = MyString + input[Loop1].ToString();

 }
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Bug in the code sample
There is a bug in the code sample (even though with the current implementation, it always works, out of fluke).

The contract for Stream.Read() does not guarantee that the specified amount of bytes is read, even if the end of the stream is not reached. Therefore, the example should employ a loop, or it should use InputStream.CopyTo() to copy the data into a MemoryStream or similar. As posted, the code may exhibit future bugs when the private implementation of HttpInputStream is changed.