Foxtable(狐表)用户栏目专家坐堂 → 代码请教版主


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

主题:代码请教版主

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


加好友 发短信
等级:一尾狐 帖子:405 积分:3572 威望:0 精华:0 注册:2014/1/8 17:12:00
代码请教版主  发帖心情 Post By:2017/1/11 15:46:00 [只看该作者]

有个表格如下: 大约不到10000行。

产品货号     图纸号      图片列
sa7241      sj-01
sa4125      sj-1257
sa5274      sj-1457

图片格式如下:

sj-01.jpg   sj-01-1.jpg   sj-01-02.jpg  (这里图片数量不定,一般为5-20个内)


我计划用ftp远程管理图片,用PictureViewer来显示图片。由于工作量太大,一个个上传太麻烦,想实现自动上传。
我的想法思路如下。遍历当前“产品表”
For Each r As DataRow In DataTables("产品表").DataRows
在指定目录下寻找,等于图纸号,或图纸号 上加  -1  -2  等的jpg的文件。
找到文件后,上传到服务器上面。
上传目录为   根目录/图纸号
举例:   sa7241 的产品货号,   上传后,会在根目录下生成目录:  sj-01
目录: sj-01下面是 上传的图片文件  sj-01.jpg    sj-01-1.jpg   sj-01-02.jpg 

同时在产品表的图片列中,保存文件路径
/根目录/sj-01/sj-01.jpg
/根目录/sj-01/sj-01-1.jpg
/根目录/sj-01/sj-01-02.jpg

图片应经准备好了。
[此贴子已经被作者于2017/1/11 15:48:42编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 16:36:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:405 积分:3572 威望:0 精华:0 注册:2014/1/8 17:12:00
  发帖心情 Post By:2017/1/11 16:44:00 [只看该作者]

版主,我看了,自己写不出来。
版主帮忙把  根据字段查找文件的那个写出来吧。

还有在图片列中添加路径的
[此贴子已经被作者于2017/1/11 16:48:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 17:08:00 [只看该作者]

Dim path As String = "d:\test\"
Dim ftp1 As New FtpClient
ftp1.Host="127.0.0.1"
ftp1.Account = "test"
ftp1.Password = "test"
ftp1.UTF8 = True

For Each dr As DataRow In DataTables("表A").Select("图纸号 is not null")
    Dim fpath As String = "/" & dr("图纸号") & "/"
    If ftp1.DirExists(path) = False Then ftp1.MakeDir(path)
    Dim str As String = ""
    For Each f As String In FileSys.GetFiles(path)
        If FileSys.GetName(f).StartsWith(dr("图纸号")) Then
            If ftp1.Upload(f, fpath & filesys.GetName(f)) = True Then
                str &= fpath & FileSys.GetName(f) & vbcrlf
                output.show("上传:" & filesys.GetName(f) & " 成功")
            Else
                output.show("上传:" & filesys.GetName(f) & " 失败")
            End If
        End If
    next
    dr("图片列") = str
Next
ftp1.close


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


加好友 发短信
等级:一尾狐 帖子:405 积分:3572 威望:0 精华:0 注册:2014/1/8 17:12:00
  发帖心情 Post By:2017/1/12 9:04:00 [只看该作者]

Dim path As String = "d:\test\"
Dim ftp1 As New FtpClient
ftp1.Host="127.0.0.1"
ftp1.Account = "test"
ftp1.Password = "test"

ftp1.RootDir ="/产品"
ftp1.UTF8 = True

For Each dr As DataRow In DataTables("表A").Select("图纸号 is not null")
    Dim fpath As String = "/" & dr("图纸号") & "/"
    If ftp1.DirExists(fpath) = False Then ftp1.MakeDir(fpath)


版主,我设置了根目录,为什么无效,新生成的目录跟   /产品  是同一级的,不是在/产品   下一级的

[此贴子已经被作者于2017/1/12 9:05:31编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/12 9:35:00 [只看该作者]

Dim path As String = "d:\test\"
Dim ftp1 As New FtpClient
ftp1.Host="127.0.0.1"
ftp1.Account = "test"
ftp1.Password = "test"
ftp1.UTF8 = True

For Each dr As DataRow In DataTables("表A").Select("图纸号 is not null")
    Dim fpath As String = "/产品/" & dr("图纸号") & "/"
    If ftp1.DirExists(path) = False Then ftp1.MakeDir(path)
    Dim str As String = ""
    For Each f As String In FileSys.GetFiles(path)
        If FileSys.GetName(f).StartsWith(dr("图纸号")) Then
            If ftp1.Upload(f, fpath & filesys.GetName(f)) = True Then
                str &= fpath & FileSys.GetName(f) & vbcrlf
                output.show("上传:" & filesys.GetName(f) & " 成功")
            Else
                output.show("上传:" & filesys.GetName(f) & " 失败")
            End If
        End If
    next
    dr("图片列") = str
Next
ftp1.close


 回到顶部