Foxtable(狐表)用户栏目专家坐堂 → [求助]FTP大量下时出现fxdlif 问题


  共有2842人关注过本帖树形打印复制链接

主题:[求助]FTP大量下时出现fxdlif 问题

帅哥哟,离线,有人找我吗?
chen3728060
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
[求助]FTP大量下时出现fxdlif 问题  发帖心情 Post By:2016/5/1 9:47:00 [只看该作者]

ftp的代码很简单,就是复制帮助文档的 FTP download

我有个商品列表,里面有上千行产品,每个产品都有图片的。

 

For Each dr As DataRow In DataTables("商品档案").DataRows
   
    Dim ftp1 As new ftpclient
    ftp1.host="196.128.143.28"
    ftp1.Account = "foxuser"
    ftp1.password = "138238110"
   
    If FileSys.FileExists( ProjectPath & dr("商品条码") & ".jpg")  Then
    Else
        ftp1.Download(dr("图片列"),ProjectPath & dr("商品条码") & ".jpg")
    End If
Next


 

我循环遍历下载每一行产品的图片到本地,大量下载时(也不多,30多个遍历下载就出现了,更别说500多个遍历下载),有的图片就会是10005966.jpg.fxdlif

 


此主题相关图片如下:1.jpg
按此在新窗口浏览图片

 

我得重新再执行一次下载才能下载到这些错误的图片。

 

这样非常麻烦,因为很多时候,我遍历FTP下载后,就直接执行缩放图片,然后在生成excel时直接引用本地图片,这种坏了的图片,就会无法生成缩略图来引用,导致我生成商品清单总是有问题。

 

请问如何解决这个错误的图片?我试过从更换 FileZilla Server为 serv-U,也是不行,没有设置最大用户数,都是可以几百并发没问题的。用传统的FlashFXP下载,10万个小图片都试过没问题。对了,我的图片基本都是10K到100k之间的,不大,就是多。我的FTP服务器是阿里云,网速是5M,配置是双核4G内存,阿里云应该网络很稳定的。


 回到顶部
帅哥哟,离线,有人找我吗?
chen3728060
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
  发帖心情 Post By:2016/5/1 10:11:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看


 

例如这个FTP下载缺了,生成excel就会

 

 


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
chen3728060
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
  发帖心情 Post By:2016/5/2 9:03:00 [只看该作者]

顶起

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2016/5/2 9:35:00 [只看该作者]

参考下这个

Dim ftp1 As new ftpclient
ftp1.host=
"ftp.baidu.com"
ftp1.Account =
"foxtable"
ftp1.password =
"168168"
If
ftp1.FileExists("/gd.mdb") = False Then
    MessageBox
.Show("广东分公司还未上报今天数据","提示"
)
    Return
End If

ftp1.Download(
"/gd.mdb","c:\temp\gd.mdb") '下载ftp上的上报文件

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/2 11:43:00 [只看该作者]

不要重复new,而且你用完一定要close,不然你ftp的连接数会不断递增,直至所有的连接数用完。

 

Dim ftp1 As new ftpclient
ftp1.host="196.128.143.28"
ftp1.Account = "foxuser"
ftp1.password = "138238110"

For Each dr As DataRow In DataTables("商品档案").DataRows
    If FileSys.FileExists( ProjectPath & dr("商品条码") & ".jpg") = False  Then
        ftp1.Download(dr("图片列"),ProjectPath & dr("商品条码") & ".jpg")
    End If
Next

ftp1.close


 回到顶部
帅哥哟,离线,有人找我吗?
chen3728060
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
回复:(大红袍)不要重复new,而且你用完一定要close...  发帖心情 Post By:2016/5/2 16:57:00 [只看该作者]

我还想请教一下,下面2种方式,ftp下载放在哪个流程哪个更好?我的excel导出,是通过窗体按钮触发的。 1我先遍历所有行,ftp下载好对应的图片,然后build报表。在报表事件build detail里,每生成一行时,把对应的原图生成缩略图后引用。 2按钮直接触发导出excel,在build detail事件了,每生成一行时,才用ftp下载对应图片并缩小成缩略图引用。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/2 17:16:00 [只看该作者]

肯定是写在报表事件比较好,这样没必要一次性下载下来。

 回到顶部
帅哥哟,离线,有人找我吗?
黄训良
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2018/12/3 17:41:00 [只看该作者]

顶顶顶顶

 回到顶部