求助用wcf做了个文件分段上传,怎么大文件,文件大小始终不对

cagejin 2018-01-18 11:14:48
代码如下
wcf端
public void BeginUpload(string FullPath, byte[] FileContext)
{
using (FileStream fs = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath(FullPath), FileMode.Append, FileAccess.Write))
{
fs.Write(FileContext, 0, FileContext.Length);
fs.Close();
fs.Dispose();
}
}

客户端

do
{
long len = fileLength- i1 * uploadIterations;
if (len < uploadIterations)
uploadIterations = int.Parse(len.ToString());
if (uploadIterations <= 0)
break;
byte[] buffer = new byte[uploadIterations];
read = fileStream.Read(buffer, 0, uploadIterations);

dc.BeginUpload(fileName, buffer);
i1++;
} while (read >= uploadIterations);


uploadIterations设置的为100k 2m以内的文件都能正常上传,2m以上的文件大小就不对了,md5也不对,文件也无法正常打开。
...全文
701 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cagejin 2018-01-27
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
[quote=引用 3 楼 cagejin 的回复:] [quote=引用 2 楼 sp1234 的回复:] read = fileStream.Read(buffer, 0, uploadIterations); 得到的是 buffer 中有效字节数,不能把 buffer 中的所有字节都写到文件中。
我现在测试了下客户端调用了82次wcf接口,但是实际服务端只响应了79次 客户端也没报错。。。[/quote] 客户端“没报错”但是都执行成功了?[/quote] 没报错,而且我进入调试模式,实实在在的循环调用了82次,在服务器端每调用一次往一个文本里面写入一行字符串,结果只有79行
  • 打赏
  • 举报
回复
引用 3 楼 cagejin 的回复:
[quote=引用 2 楼 sp1234 的回复:] read = fileStream.Read(buffer, 0, uploadIterations); 得到的是 buffer 中有效字节数,不能把 buffer 中的所有字节都写到文件中。
我现在测试了下客户端调用了82次wcf接口,但是实际服务端只响应了79次 客户端也没报错。。。[/quote] 客户端“没报错”但是都执行成功了?
cagejin 2018-01-19
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
read = fileStream.Read(buffer, 0, uploadIterations); 得到的是 buffer 中有效字节数,不能把 buffer 中的所有字节都写到文件中。
我现在测试了下客户端调用了82次wcf接口,但是实际服务端只响应了79次 客户端也没报错。。。
  • 打赏
  • 举报
回复
read = fileStream.Read(buffer, 0, uploadIterations); 得到的是 buffer 中有效字节数,不能把 buffer 中的所有字节都写到文件中。
cagejin 2018-01-18
  • 打赏
  • 举报
回复
而且感觉这种循环调用wcf接口效率很低,有大神能优化吗

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧