以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- FTP批量上传,失败 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97195) |
-- 作者:douglas738888 -- 发布时间:2017/3/7 20:33:00 -- FTP批量上传,失败 请教老师,以下代码批量上传文件,路径上有问题,提示上传失败,不知应该改,请教请教
filemanager1 能显示多个文件名,但是无法上传到服务器 用msgbox(fp & "/" & fname)弹出的路径是 \\\\WJY\\F:\\WJY\\AAA.JPG\\F:\\WJY\\AAA.JPG \\\\WJY\\F:\\WJY\\BBB.JPG\\F:\\WJY\\BBB.JPG
Dim dlg As new OpenFileDialog If dlg.ShowDialog = DialogResult.OK Then
Dim r As Row = Tables("上传文件_Table1").Current Dim ftp As new FTPClient If ftp.Connected = True Then
If ftp.DirExists("\\WJY\\" & Tables("上传文件_Table1").Current("相片")) = False Then Dim fp As String = "\\WJY\\" & Tables("上传文件_Table1").Current("相片")
If r.IsNull("相片") Then End If [此贴子已经被作者于2017/3/7 20:33:12编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/3/7 21:32:00 -- Tables("上传文件_Table1").Current("相片")存储的是什么数据?目录,还是文件名? If ftp.Upload(dlg.FileName,fp & "\\" & FileSys.GetName(fname),True) = True Then \'若成功上传
|
-- 作者:douglas738888 -- 发布时间:2017/3/7 21:56:00 -- Tables("上传文件_Table1").Current("相片")存储的是什么数据?目录,还是文件名?
是多文件的文件名 |
-- 作者:douglas738888 -- 发布时间:2017/3/7 22:04:00 -- 错误图片
此主题相关图片如下:22.jpg |
-- 作者:有点蓝 -- 发布时间:2017/3/7 22:47:00 -- Dim dlg As new OpenFileDialog Dim piv As WinForm.FileManager = e.Form.Controls("FileManager1") dlg.Filter= "图形文件|*.bmp;*.jpg;*.gif" dlg.MultiSelect = True \'文件多选 If dlg.ShowDialog = DialogResult.OK Then For Each fname As String In dlg.FileNames piv.AddFile(fname) Dim r As Row = Tables("上传文件_Table1").Current Dim ftp As new FTPClient ftp.host="*****" ftp.Port = 21 ftp.account="******" ftp.password="*****" ftp.Connect If ftp.Connected = True Then msgbox("链接成功,准备上传!") End If If ftp.DirExists("\\WJY\\") = False Then ftp.MakeDir("\\WJY\\")) \'服务器上生成文件夹 End If Dim fp As String = "\\WJY\\" & FileSys.GetName(fname) e.Form.text = "文件上传中...." If ftp.Upload(dlg.FileName,fp,True) = True Then \'若成功上传 e.Form.text = "上传新文件" MessageBox.Show("上传成功!","提醒") If r.IsNull("相片") Then r("相片") = fp Else r("相片") = r("相片") & vbcrlf & fp End If End If msgbox(fp & "/" & fname) Next End If
|
-- 作者:douglas738888 -- 发布时间:2017/3/9 14:40:00 -- 感谢老师的指导,后来我又调整了//,让文件名前符匹配,现在存在如下问题
1.批量上传图片到服务器上可以实现,服务器里面的文件夹里面也有上传的图片,但是 PictureViewer1里面只会显示其中一张图片,或者都不显示图片,只显示文件名
2.如果只上传一张图片,PictureViewer1里面开始只显示小红叉,切换表行再返回到当前行后,图片能显示,同时RemoteFiles远程文件夹里面自动下载图片进来,如果把 RemoteFiles里面的当前图片删除,PictureViewer1就不显示图片
代码如下 Dim dlg As new OpenFileDialog
示例图片
此主题相关图片如下:33.jpg |
-- 作者:有点色 -- 发布时间:2017/3/9 14:47:00 -- 你可以在上传成功以后,把图片复制到 RemoteFiles 文件夹里面
FileSys.CopyFile(fname, ProjectPath & "/" & FileSys.GetName(fname), true) piv.AddFile("//" & FileSys.GetName(fname)) [此贴子已经被作者于2017/3/9 14:47:03编辑过]
|
-- 作者:有点色 -- 发布时间:2017/3/9 14:48:00 -- 而且,你上传de时候,写错了
If ftp.Upload(fname,fp,True) = True Then \'若成功上传 |
-- 作者:douglas738888 -- 发布时间:2017/3/9 15:58:00 -- 老师,如果要在 RemoteFiles 里面才能显示的话,这样太占空间了,另外也不利于文件的权限管理,如果A用户要查看B用户已经上传的文件,是无法看到的(只有文件名),除非要下载下来才行。 |
-- 作者:有点色 -- 发布时间:2017/3/9 16:56:00 -- 先看8楼,改一下代码看行不行。 |