大侠请进,问一个超难的关于文件传输问题.(100)

S

siaosa

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个文件管理功能. 从客户端能直接将文件存储到服务端,并且客户端能直接查看,打开,或者修改服务端的文件(客户端不需要上传或者下载文件而直接使用服务端的文件). 服务端不能使用共享文件夹. 大家有什么好的方法没有?
 
把服务器端做成一个http服务。客户端以纯ie或者ie+ie插件。在客户端以浏览的方式打开服务器端的文件一览。选择某文件后直接打开就可以修改了。因为服务器端是你自己做的,你还可以加上“同时只能有一个用户打开”等制限。在很多pc操作时比较有用。另外还可以用vss做服务器端,客户端自动check in /out
 
如果做成HTTP方式,选择某个文件打开是没问题. 但它是下载之后再打开,而且修改之后并不能自动保存到服务器啊
 
比较理想的办法是写一虚拟驱动,在客户端模拟一个磁盘。操作和本地文件几乎完全一样。
 
2009-06-15 13:17:22-->发出上传请求:xxxxx...xxxxx....???/kClient.res2009-06-15 13:17:22-->在客户端排队等待[每个客户端最多只许5个线程同时传送文件!]2009-06-15 13:17:22-->排队成功!2009-06-15 13:17:22-->正在连接服务器...2009-06-15 13:17:22-->连接服务器成功!2009-06-15 13:17:22-->开始上传数据... [文件大小:876B]2009-06-15 13:17:22-->上传完毕,本次平均上传速度:4.21K/秒2009-06-15 13:17:22-->等待服务器释放本次上传文件资源...2009-06-15 13:17:22-->本机正在计算传送前的文件MD5值...2009-06-15 13:17:22-->正在等待服务器验证上传文件的MD5值...2009-06-15 13:17:23-->MD5值验证通过,证明上传前后文件完全一致!2009-06-15 13:17:23-->文件上传成功!2009-06-15 13:17:48-->发出下载请求:生产单维护/2009/WO090600002/kClient.res2009-06-15 13:17:48-->在客户端排队等待[每个客户端最多只许5个线程同时传送文件!]2009-06-15 13:17:48-->排队成功!2009-06-15 13:17:48-->正在连接服务器...2009-06-15 13:17:48-->连接服务器成功!2009-06-15 13:17:48-->开始下载文件... [文件大小:876B]2009-06-15 13:17:48-->下载完毕,本次平均下载速度:57.03K/秒2009-06-15 13:17:48-->等待服务器计算文件的MD5值...2009-06-15 13:17:48-->本机正在计算下载后的文件MD5值...2009-06-15 13:17:48-->MD5值验证通过,证明下载前后文件完全一致!2009-06-15 13:17:48-->文件下载成功!IndyTCPClient/Server做的
 
To:aKnightChen 文件关闭时能自动存储到服务器中吗? 如果可以的话,能把源码发一份给我参考一下吗?tonny2003@163.com
 
//// 开始传输...procedure TForm1.Button2Click(Sender: TObject);begin if edit1.text='' then begin application.MessageBox('请先选择要上传的文件!','操作提示',mb_ok+mb_iconinformation); exit; end; if syncburro1.WriteRemoteFile(qbconnection1.NodeId,edit1.Text,'c:/'+extractfilename(edit1.Text),10) then application.MessageBox('指定的文件已经上传到服务器的C:/下!','上传成功',mb_ok+mb_iconinformation) else application.MessageBox('上传失败!','错误信息',mb_ok+mb_iconerror);end;//// 传输进度...procedure TForm1.SyncBurro1FileWriteProgress(Sender: TObject; AllBlocks, CurrentBlock: Integer);begin progressbar1.Max:=allblocks; progressbar1.Position:=currentblock;end;//// 开始下载...procedure TForm1.Button2Click(Sender: TObject);begin if edit1.text='' then begin application.MessageBox('请先指定要下载的文件!','操作提示',mb_ok+mb_iconinformation); exit; end; if syncburro1.ReadRemoteFile(qbconnection1.NodeId,edit1.Text,'c:/'+extractfilename(edit1.Text),10) then application.MessageBox('指定的文件已经下载到本地的C:/下!','下载成功',mb_ok+mb_iconinformation) else application.MessageBox('下载失败!','错误信息',mb_ok+mb_iconerror);end;//// 下载进度...procedure TForm1.SyncBurro1FileReadProgress(Sender: TObject; AllBlocks, CurrentBlock: Integer);begin progressbar1.Max:=allblocks; progressbar1.Position:=currentblock;end;
 
To:wpy020327 当文件被关闭时,怎么[red]自动[/red]存储到服务器中呢?
 
To:aKnightChen 文件关闭时能自动存储到服务器中吗? 如果可以的话,能把源码发一份给我参考一下吗?tonny2003@163.com ===>不好意思,商业项目.仅起抛砖引玉作用.文件关闭时能自动存储到服务器中吗?==>你问这个问题,说明你没有做过一个TCP/IP传文件的例子.网上大把的例子.一定要下一个,自已重写一次,你就会明白的.
 
To:aKnightChen 你说的打开文件过程是这样吧 从服务器下载文件到本地,再打开 关闭文件时 用后台代码将文件上传到服务器能不能像共享文件夹一下直接打开修改存储?而不需要下载或上传过程?网上的例子没一样是这样的
 
你是不是要作成在线office文档编辑那种效果,商业控件有不少,开源的DSOFramer也行,功能没有商业的好。不过都只能对office文档编辑。
 
可以看看我写的友益在线文档资料管理系统www.olwdzl.com下载
 
能不能像共享文件夹一下直接打开修改存储?而不需要下载或上传过程?网上的例子没一样是这样的 --->这就复杂了,相当于你在服务器上,重写一个模拟操作一样.搞个文本编辑器还行,其它文档,就不要搞了.
 
这个我做过,如果是商业目的请联系我 qq:240116867驱动的.
 
如果对一种文件,还是可以的,做一个远程的修改,关闭时保存回去,但要自己做编辑器!
 
个人认为主要是两种思路,一是在本地操作,一是在服务器上操作,本地操作就必然要下载回来,修改后再上传,服务器上操作,就用远程监控的形式,全部连到服务器上操作,文件的打开修改都是在服务器上完成的.除此之外想不到其它第三种方式了
 
这个我也可以做,基于文件型驱动商业目的请联系我qq:292984488
 
to:wpy020327 syncburro 是什么控件?在那可以查得到?
 
来自:火焰领主打伞, 时间:2009-7-6 9:15:56, ID:3966410to:wpy020327 syncburro 是什么控件?在那可以查得到?------------------------------------------SyncBurro是快驴里的一个同步任务执行控件:http://www.quickburro.net/
 
To:wpy020327 你说的这个处理方式,还是需要上传和下载. 我要的是不需要上传下载方式的远程文件存储方案.能不能像共享文件夹一下直接打开修改存储?而不需要下载或上传过程.
 
顶部