C# WebService下载大文件问题

15641300456 2009-02-01 08:53:37
[webmethod]
public byte[] getFile(string fileName)
{
}
客户端建立内存流再保存文件,如果文件很大就会出错

如何能实现读取一点文件保存,再读取再保存?
...全文
669 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
15641300456 2009-02-02
  • 打赏
  • 举报
回复
如果文件是1G 那么是不是要占用客户端1G的内存后再写入硬盘呢?

有没有分断下载的办法?
[Quote=引用 7 楼 wuyq11 的回复:]
通过压缩实现文件流传输
http://www.cnblogs.com/support/archive/2006/09/29/518430.aspx
http://www.cnblogs.com/gxh973121/articles/331600.html
[/Quote]
namgking 2009-02-01
  • 打赏
  • 举报
回复
还是用FTP好了~这样不容易受限制~
cancerser 2009-02-01
  • 打赏
  • 举报
回复
别用WebService传文件,其个人认为极限是2M
64位的来回转换会使其流量是正常传输的4倍
hangang7403 2009-02-01
  • 打赏
  • 举报
回复
up
edwardsoft 2009-02-01
  • 打赏
  • 举报
回复
试试把文件分成几段,分别下载后在合成。当然每段下载都要加入校验
sxmonsy 2009-02-01
  • 打赏
  • 举报
回复
这个没有太好的办法 这个和IIS及上传的性能有关

如果对于较大的文件建议采用FTP软件上传

不要通过网页上传
15641300456 2009-02-01
  • 打赏
  • 举报
回复
上传解决了,这回是想下载文件。嘿嘿
[Quote=引用 4 楼 miqier 的回复:]
建议分段上传。
bool UploadFile(string fileName, byte[] fileContent, int contentLength, bool resume)
{
FileStream fs = null;
if (resume)
{
fs = new FileStream(fileName, FileMode.Open, FileAccess.Write, FileShare.None);
fs.Position = fs.Length;
fs.Write(fileContent, 0, contentLength);

[/Quote]
15641300456 2009-02-01
  • 打赏
  • 举报
回复
上传解决了,这回是想下载文件。嘿嘿
miqier 2009-02-01
  • 打赏
  • 举报
回复
建议分段上传。
bool UploadFile(string fileName, byte[] fileContent, int contentLength, bool resume)
{
FileStream fs = null;
if (resume)
{
fs = new FileStream(fileName, FileMode.Open, FileAccess.Write, FileShare.None);
fs.Position = fs.Length;
fs.Write(fileContent, 0, contentLength);
fs.Flush();
fs.Close();
fs.Dispose();
}
else
{
fs = new FileStream(fileName, FileMode.CreateNew, FileAccess.Write, FileShare.None);
fs.Write(fileContent, 0, contentLength);
fs.Flush();
fs.Close();
fs.Dispose();
}
return true;
}

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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