Stream文件流上传

FileStream文件上传用法:

FileStream fs = new FileStream(upFileName, FileMode.Open, FileAccess.Read, FileShare.Read);

BinaryReader bReader = new BinaryReader(fs);

byte[] postArray = bReader.ReadBytes((int)fs.Length);

Stream postStream = myWebClient.OpenWrite(saveFileName, "PUT");

if (postStream.CanWrite)

{ postStream.Write(postArray, 0, postArray.Length); }

postStream.Close();

当从客户端上传文件至服务器端时,会提示“未能找到路径的一部分”;

原因是,FileStream上传文件获取的文件路径是服务器端的路径,不能用于从客户端上传文件;FileStream多用于WinForm文件上传。

可以使用Stream代替FileStream类进行文件上传,

FileStream fs = new FileStream(upFileName, FileMode.Open, FileAccess.Read, FileShare.Read);

替换为

Stream fs = new StreamReader(upFileName);

Stream 允许远程数据流上传,本地到服务器,本地到本地都没有问题;FileStream 只支持本地数据流上传,所有会造成本地上传没有问题,到服务器时错误。

 MSDN介绍:

FileStream类             Stream类             StreamReader类

原文地址:https://www.cnblogs.com/xyd21c/p/2106598.html