以下代码能正常读取:
客户端:
byte[] buffer = new byte[fs.Length];//分配内存
fs.Read(buffer, 0,(int)fs.Length);//读文件
var v = Encoding.UTF8.GetBytes(Convert.ToBase64String(buffer));//编码
var r = webClient.UploadData(url, "POST", v);//发送
服务端
System.IO.Stream s = h.Request.InputStream;//获取流
System.IO.StreamReader r = new System.IO.StreamReader(s,Encoding.UTF8);//解码
var v = (Convert.FromBase64String(r.ReadToEnd()));//读取
fs.Write(v, 0, v.Length);//写文件更改为以下代码时:
客户端:
byte[] buffer = new byte[fs.Length];//分配内存
fs.Read(buffer, 0,(int)fs.Length);//读文件
var r = webClient.UploadData(url, "POST", buffer);//发送
服务端:
System.IO.Stream s = h.Request.InputStream;//获取流
byte[] buffer = new byte[s.Length];//分配内存(此处代码出现异常:该流无法查找操作)
S.Read(buffer, 0, buffer.Length)//
fs.Write(buffer, 0, buffer.Length);//写文件
会出现:该流无法查找操作。网上搜索了相关内容:
更改为一下代码:
服务端:
System.IO.Stream s = h.Request.InputStream;//获取流
BufferedStream bs = new BufferedStream(s);//转为内存流
byte[] buffer = new byte[1024];//分配内存
while ((i =bs.Read(buffer, 0, buffer.Length))>0) { fs.Write(buffer, 0, i); }//写文件(bs.Read读取返回值为0)
仍然有错误。求大神指教。谢谢!
客户端:
byte[] buffer = new byte[fs.Length];//分配内存
fs.Read(buffer, 0,(int)fs.Length);//读文件
var v = Encoding.UTF8.GetBytes(Convert.ToBase64String(buffer));//编码
var r = webClient.UploadData(url, "POST", v);//发送
服务端
System.IO.Stream s = h.Request.InputStream;//获取流
System.IO.StreamReader r = new System.IO.StreamReader(s,Encoding.UTF8);//解码
var v = (Convert.FromBase64String(r.ReadToEnd()));//读取
fs.Write(v, 0, v.Length);//写文件更改为以下代码时:
客户端:
byte[] buffer = new byte[fs.Length];//分配内存
fs.Read(buffer, 0,(int)fs.Length);//读文件
var r = webClient.UploadData(url, "POST", buffer);//发送
服务端:
System.IO.Stream s = h.Request.InputStream;//获取流
byte[] buffer = new byte[s.Length];//分配内存(此处代码出现异常:该流无法查找操作)
S.Read(buffer, 0, buffer.Length)//
fs.Write(buffer, 0, buffer.Length);//写文件
会出现:该流无法查找操作。网上搜索了相关内容:
更改为一下代码:
服务端:
System.IO.Stream s = h.Request.InputStream;//获取流
BufferedStream bs = new BufferedStream(s);//转为内存流
byte[] buffer = new byte[1024];//分配内存
while ((i =bs.Read(buffer, 0, buffer.Length))>0) { fs.Write(buffer, 0, i); }//写文件(bs.Read读取返回值为0)
仍然有错误。求大神指教。谢谢!
h.Request.InputStream.CopyTo(ms);
var buff = ms.ToArray();
这样试试呢
首先谢谢大家的回复。关于楼上所说,Request.InputStream.改流下没有CopyTo的方法。请问何处有.ReadToEnd的源码呢?编译器只能看到定义
System.IO.Stream s = h.Request.InputStream;//获取流
const int bufferLength = 1024;
byte[] buffer = new byte[bufferLength ];//分配内存
while ((i =s.Read(buffer, 0, bufferLength ))>0)
{
fs.Write(buffer, 0, i);
}