C# FTP上传文件, 将一个文件分成n份,没份用一个线程,请问大神这该怎么搞

老子横刀向天笑 2013-08-05 03:54:36
最近在做一个项目,其中频繁的要同步数据,同步数据用的是ftp,现在的问题是同步可以正常,但是文件太大就出问题了,慢而且卡,搞得不好程序估计没响应.上次我们老大去别人公司演示,别人的广告文件一个600多M,大一点的一两G,当时他把文件往上面一拖,程序卡的不动了.
请问大神,如何将一个文件分割成N份,然后用N个线程同时上传,
把文件分成N份,倒还好搞,但是到服务器那边就不好控制,因为是用ftp的,上传的时候服务器那边又不能感应和控制客户端的上传情况,如果用Socket还好,但是socket管理起来难.如果把N份文件流同时上传至服务器,服务器如何识别上传的顺序又如何将他们重组成一个完整的文件.
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
paopaozhu8899 2013-08-06
  • 打赏
  • 举报
回复
在本地分割文件成N个。然后传到服务器的某个目录下。在服务器上合并文件。这个想法不知道行的通不?
gengchenhui 2013-08-06
  • 打赏
  • 举报
回复
现在的人都受不了哪怕一点“逆耳”的话么?何况sp说的又是你们老大,又不是你。。。
  • 打赏
  • 举报
回复
引用 3 楼 paopaozhu8899 的回复:
在本地分割文件成N个。然后传到服务器的某个目录下。在服务器上合并文件。这个想法不知道行的通不?
这个还不错
dav0913 2013-08-06
  • 打赏
  • 举报
回复
楼上不要这么上纲上线嘛,大家不是在讨论,何必老说人家抄来抄去呢。 我感觉可以不可以这样子,在服务器那边做一个检测程序,客户端这边把分割成N个的文件,每个文件加上一段索引段,就像每个文件的校验段一样,然后服务器收到后,检测这个文件是一个单独的文件还是一个大文件一部分,做相应的处理。主要的还是服务器那边要做好检测处理程序。
  • 打赏
  • 举报
回复
即使是单线程顺序上传,使用ftp往往也比tcp要慢许多倍,而且你使用那种抄来的四五行代码的所谓ftp客户端代码,你也看不到支持上传进度的代码写法。 总之程序设计人员就是因为有点深入的知识,所以才叫“设计人员”。你的老大提的问题和他的设想,如果是比较“想当然”的,那么最好把这个问题扔回给你“老大”去做而自己捡一些“无压力”的轻松工作去做。
  • 打赏
  • 举报
回复
引用 楼主 hutao1101175783 的回复:
请问大神,如何将一个文件分割成N份,然后用N个线程同时上传, 把文件分成N份,倒还好搞,但是到服务器那边就不好控制,因为是用ftp的,
在你们这种“只会用从网上吵得几行代码,而不会自己进行服务器开发”的所谓开发方法下,是不可能做到的。默认情况下,ftp服务器根本不支持什么多线程上传同一个文件的处理。
  • 打赏
  • 举报
回复
你们的问题,其实跟这个“老大”直接有关。看来你题目中遇到的问题,你们是跳不过去的。
引用 2 楼 hutao1101175783 的回复:
我们老大说不让用Socket,他说Socket不好管理,如果用Socket还得改程序的流程.
有多大差别?修改三四行代码的事而已。
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
用socket,服务端可以先创建 一个完整大小的文件然后每个线程写入不同的位置
我们老大说不让用Socket,他说Socket不好管理,如果用Socket还得改程序的流程.
bdmh 2013-08-05
  • 打赏
  • 举报
回复
用socket,服务端可以先创建 一个完整大小的文件然后每个线程写入不同的位置

110,537

社区成员

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

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

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