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介绍: