1.背景
需要以byte[]数据流的方式传输文件到服务器,并在服务器还原文件。
2.代码
(1)转换为byte[]
# region function1
FileStream fs = File.OpenRead(@"D:\\workspace\test.txt");
MemoryStream tempStream = new System.IO.MemoryStream();
int bi;
while ((bi = fs.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)bi));
}
byte[] buffer = tempStream.ToArray();
string ss = JsonConvert.SerializeObject(buffer);
# endregion
#region function2
FileStream stream = new FileInfo(@"D:\\workspace\test.txt").OpenRead();
Byte[] buffer = new Byte[stream.Length];
//从流中读取字节块并将该数据写入给定缓冲区buffer中
stream.Read(buffer, 0, Convert.ToInt32(stream.Length));
return buffer;
#endregion
(2)从byte[]转换为文件,并保存在给定位置
FileStream fileStream = null;
MemoryStream ms = new MemoryStream(buffer);
try
{
string savePath = "lujing";
if (!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
fileStream = new FileStream(savePath + fileName, FileMode.Create);
ms.WriteTo(fileStream);
}
catch (Exception ex){
throw ex;
}
finally
{
ms.Close();
fileStream.Close();
}
3.超过4m文件上传
<system.web>
<httpRuntime maxRequestLength= "51200" executionTimeout="3600" targetFramework="4.5" />
<system.web>