存储文件上传到MemoryStream(C#)的最佳做法是什么? [英] What is the best practice for storing a file upload to a MemoryStream (C#)?
本文介绍了存储文件上传到MemoryStream(C#)的最佳做法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用asp.net(3.5)做这个最好的方法是什么?
这是我到目前为止。它工作(本地测试),但它看起来不正确的我。
保护无效lnkUploadFile_Click(对象发件人,EventArgs e)
{
MemoryStream memStream = new MemoryStream();
BinaryWriter sWriter = new BinaryWriter(memStream);
foreach(在flUpload.FileBytes中的字节b)
{
sWriter.Write(b);
}
sWriter.Flush();
//写入文件来验证正确转换的文件流
FileStream fstream = new FileStream(@C:/ test /+ flUpload.FileName,FileMode.Create);
memStream.WriteTo(fstream);
fstream.Dispose();
memStream.Dispose();
解决方案
> flUpload.FileBytes 是一个字节数组,您可以使用接受包含的数据作为参数的MemoryStream构造函数:
MemoryStream memStream = new MemoryStream(flUpload.FileBytes);如果不是(如果它只是实现了IEnumerable),那么可以使用Linq将它转换为一个字节数组:
MemoryStream memStream = new MemoryStream(flUpload.FileBytes.ToArray());
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();
}
解决方案 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());
这篇关于存储文件上传到MemoryStream(C#)的最佳做法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文