以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- ftp上传失败 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132403)
|
-- 作者:cd_tdh
-- 发布时间:2019/3/21 10:02:00
-- ftp上传失败
老师,这个代码有什么问题,一直上传不成功,提示:上传过程出现意外,上传不成功!但直接用内置管理器上传又没有问题。而且我把文件放到服务器,显示也正常。
e.cancel = True Select Case e.Col.Name Case "身份证扫描件" Dim dlg As New openFileDialog \'定义一个新的SaveFileDialog dlg.MultiSelect = True If dlg.showDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim ftp1 As new ftpclient ftp1.host="120.0.**.**" ftp1.Account = "f*****" ftp1.password = "1*****" Dim r As Row = Tables("实名制管理").Current Dim ls = r.DataRow.Lines("身份证扫描件") For Each f As String In dlg.FileNames Dim file = "/项目名称/" & r("姓名") & "/" & filesys.GetName(f) If ftp1.DirExists("/项目名称/" & r("姓名")) = False Then ftp1.MakeDir("/项目名称/" & r("姓名")) End If Dim Result As DialogResult If ftp1.FileExists(file) Then Result = MessageBox.Show("文件已经存在,是否覆盖?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) End If If result = Nothing OrElse result = DialogResult.Yes Then If ftp1.Upload(f,file,True) = True Then If ls.contains(file) = False Then ls.add(file) End If Else MessageBox.Show( f & "上传失败" ,"提示" ,MessageBoxButtons.OK,MessageBoxIcon.Question) End If End If Next r.DataRow.lines("身份证扫描件") = ls ftp1.Close End If End Select
[此贴子已经被作者于2019/3/21 10:05:16编辑过]
|
-- 作者:有点蓝
-- 发布时间:2019/3/21 10:43:00
--
MakeDir后服务器是否有新增对应的文件夹?
If ftp1.Upload(f,file,True) = True Then msgbox(file) \'能不能弹出 If ls.contains(file) = False Then ls.add(file) End If Else
|
-- 作者:cd_tdh
-- 发布时间:2019/3/21 10:55:00
--
不能弹出,目录创建没成功
|
-- 作者:有点蓝
-- 发布时间:2019/3/21 11:11:00
--
ftp的目录必须一级一级创建,现有父目录,才能创建子目录
|
-- 作者:cd_tdh
-- 发布时间:2019/3/21 11:55:00
--
有主目录,我另外表也这个方式,都是正确的。就这个ftp的不正确,创建目录权限全部都给了
|
-- 作者:有点蓝
-- 发布时间:2019/3/21 12:05:00
--
如果无法创建目录,目录结构肯定不正确
|
-- 作者:cd_tdh
-- 发布时间:2019/3/21 12:17:00
--
这是ftp主目录
此主题相关图片如下:111.png
这是我直接用内置服务器创建的路径,而且子目录:平昌县/测试也是直接创建的
此主题相关图片如下:333.png
|
-- 作者:有点蓝
-- 发布时间:2019/3/21 12:20:00
--
使用MakeDir只能一级一级的创建目录结构
|
-- 作者:cd_tdh
-- 发布时间:2019/3/21 12:25:00
--
知道问题在哪儿了,老师,我想先根据“项目名称”创建目录,在项目名称下根据“姓名”创建子目录,怎么写呢?
按照一级一级创建,这样写不对,大概就下面这个意思:
Dim file = "/" & r("项目名称") & "/" & r("姓名") & "/" & filesys.GetName(f) If ftp1.DirExists("/" & r("项目名称") & "/" & r("姓名")) = False Then ftp1.MakeDir("/" & r("项目名称") & "/" & r("姓名")) End If
[此贴子已经被作者于2019/3/21 12:26:02编辑过]
|
-- 作者:有点蓝
-- 发布时间:2019/3/21 13:39:00
--
If ftp1.DirExists("/" & r("项目名称")) = False Then if ftp1.MakeDir("/" & r("项目名称")) = false then msgbox(“创建失败”) End If If ftp1.DirExists("/" & r("项目名称") & "/" & r("姓名")) = False Then if ftp1.MakeDir("/" & r("项目名称") & "/" & r("姓名")) then msgbox(“创建失败”) End If
|