What is the best practice for storing a file upload to a MemoryStream (C#)?
15,391
Solution 1
If flUpload.FileBytes
is a byte array, you can use the MemoryStream constructor that accepts the contained data as a parameter:
MemoryStream memStream = new MemoryStream(flUpload.FileBytes);
If not (if it just implements IEnumerable), you can convert it to a byte array using Linq:
MemoryStream memStream = new MemoryStream(flUpload.FileBytes.ToArray());
Solution 2
protected void lnkUploadFile_Click(object sender, EventArgs e)
{
using (MemoryStream memStream = new MemoryStream(flUpload.FileBytes))
{
using (FileStream fstream = new FileStream(@"C:/test/" +
flUpload.FileName, FileMode.Create))
{
memStream.WriteTo(fstream);
}
}
}
Author by
Kenneth J
Updated on June 05, 2022Comments
-
Kenneth J almost 2 years
I need to temporary store a file upload to a MemoryStream.
What would be the best method to do this using asp.net (3.5)?
Here's what I have so far. It works (locally tested), but it does not look right to me.
protected void lnkUploadFile_Click(object sender, EventArgs e) { MemoryStream memStream = new MemoryStream(); BinaryWriter sWriter = new BinaryWriter(memStream); foreach (byte b in flUpload.FileBytes) { sWriter.Write(b); } sWriter.Flush(); // writing to file to verify file stream converted correctly FileStream fstream = new FileStream(@"C:/test/" + flUpload.FileName, FileMode.Create); memStream.WriteTo(fstream); fstream.Dispose(); memStream.Dispose(); }
-
mosheb about 7 yearsthe question was for a memorystream, not file