以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]FTP大量下时出现fxdlif 问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84419)

--  作者:chen3728060
--  发布时间:2016/5/1 9:47:00
--  [求助]FTP大量下时出现fxdlif 问题

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
--  发布时间:2016/5/1 10:11:00
--  


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


 

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

 

 


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

--  作者:chen3728060
--  发布时间:2016/5/2 9:03:00
--  
顶起
--  作者:blackzhu
--  发布时间: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上的上报文件

--  作者:大红袍
--  发布时间: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
--  发布时间:2016/5/2 16:57:00
--  回复:(大红袍)不要重复new,而且你用完一定要close...
我还想请教一下,下面2种方式,ftp下载放在哪个流程哪个更好?我的excel导出,是通过窗体按钮触发的。 1我先遍历所有行,ftp下载好对应的图片,然后build报表。在报表事件build detail里,每生成一行时,把对应的原图生成缩略图后引用。 2按钮直接触发导出excel,在build detail事件了,每生成一行时,才用ftp下载对应图片并缩小成缩略图引用。
--  作者:大红袍
--  发布时间:2016/5/2 17:16:00
--  
肯定是写在报表事件比较好,这样没必要一次性下载下来。
--  作者:黄训良
--  发布时间:2018/12/3 17:41:00
--  
顶顶顶顶