日期:2014-05-18  浏览次数:20391 次

【百分求助】FTP上传大文件,如何列表显示,下载,邮件通知,及相关问题,求解决办法。
100分求助。

现在的需求是这样的:

我要做的是一个这样的系统,用户通过网站上传图片到公司FTP服务器,公司里的美工就可以找到这些图片,并且可以根据条件(比如用户名)来搜索到具体是哪些图片。

用户可能是在世界各地,登陆网站后,可以上传最多15张照片(有的照片可能很大),要求上传通过FTP来上传,FTP服务器在日本,也就是说要上传到日本的服务器上。

现在的问题是:

1,我没做过用ASP.NET来进行FTP上传,查了查资料,勉强做了个例子,功能测了下勉强能用,我想问问用ASP.NET来进行FTP上传,支持断点续传吗?我分析了下理论上说,这是不可能的,那么传这15张照片的时候,失败了(比如断电,断网,超时),这个怎么处理?就在FTP服务器上留一堆垃圾文件么?有没有什么办法,在传这15张图片的时候失败的话就全删掉?(比如用户AAA传了10张了,在传11张的时候,出错了,那么现在就把这个用户AAA传的1到11张图片全部删掉),然后提示“上传失败,请重新上传!”我现在做不到这个功能。

2,美工怎么搜索这些已经传到FTP上的照片?那怎么才能把FTP上的这些图片读出来,绑定到比如GRIDVIEW上显示出来,并让美工可以搜索,还能选择下载呢?我现在完全没头绪,我现在想的办法是,上传一张图片就往数据库里插条数据记录该图片的FTP路径,到时候往GRIDVIEW上一绑,完事,但是这样做也不好,万一数据库里有记录,而FTP上没这张图片,那又麻烦了(比如FTP上传图片因为超时失败了,但是插入数据库却成功了,就会出现这样的情况吧),实在不知道怎么做。

3,上传成功后还要自动发邮件给客户和美工,这个我也不知道怎么做,我怎么才能判断是否FTP上传成功呢?似乎也没办法判断。

4,下载成功后该文件要标记为“已下载”,那就是说肯定要有数据库某张表来记录上传的图片的信息,表里肯定要设计个字段为“是否已下载”,那这又关系到第2个问题了,万一数据库里有记录而FTP上没图片(上传失败导致),又不好办。

求解决办法,说下思路也可以。

------解决方案--------------------
1 如果上传失败就要全部重新上传,还要断点续传干嘛?
2.可以这样:在图片上传成功后设置一种状态。如果在这种状态下,再更新数据库
3.我也不会。。。
------解决方案--------------------
一个方法应该就可以了!
当用户上传文件的时候往数据库添加数据,使用sql事务
如果上传完成才插入数据库,并保存文件
如果事务会自动回滚 不执行数据库插入记录!