Dim ftp1 As New FtpClient
Dim fl As String
Dim receiverName As String
Try
ftp1.Host = "192.168.1.x"
ftp1.Account = "xxxx" ,这里隐藏了
ftp1.Password = "xxx"
ftp1.RootDir = "/PSD"
' 获取并检查收款单位
receiverName = Trim(CurrentTable.Current("收款单位"))
' 检查收款单位是否为空
If String.IsNullOrEmpty(receiverName) Then
MessageBox.Show("警告:收款单位为空!")
End If
' 构建目录路径,移除可能的非法字符
receiverName = receiverName.Replace("\", "_") _
.Replace("/", "_") _
.Replace(":", "_") _
.Replace("*", "_") _
.Replace("?", "_") _
.Replace("""", "_") _
.Replace("<", "_") _
.Replace(">", "_") _
.Replace("|", "_") _
.Trim()
' 构建目录路径
fl = receiverName & "/" & CurrentTable.Current("流水号")
Try
ftp1.ChangeDir("/")
' 先尝试创建收款单位目录(如果不存在)
If Not ftp1.dirExists(receiverName) Then
If Not ftp1.MakeDir(receiverName) Then
MessageBox.Show("创建收款单位目录失败!")
End If
End If
' 切换到收款单位目录
ftp1.ChangeDir(receiverName)
' 创建流水号子目录
If Not ftp1.dirExists(CurrentTable.Current("流水号")) Then
If ftp1.MakeDir(CurrentTable.Current("流水号")) Then
MessageBox.Show("创建目录成功: " & fl)
Else
MessageBox.Show("创建流水号目录失败!")
End If
Else
MessageBox.Show("目录已存在: " & fl)
End If
Catch ex As Exception
MessageBox.Show("创建目录失败: " & ex.Message)
End Try
Catch ex As Exception
MessageBox.Show("FTP连接失败: " & ex.Message)
End Try
'第二步获取上传文件的文件名 并上传到指定的目录里面
'Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
'If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
' ftp1.upload(dlg.FileName, fl, True)
'End If
' ... 前面的 FTP 创建目录代码保持不变 ...
'第二步获取上传文件的文件名并上传到指定的目录里面
Try
Dim dlg As New OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
' 获取文件名 - 使用简单的字符串处理方法
Dim fileName As String = dlg.FileName.Substring(dlg.FileName.LastIndexOf("\") + 1)
Try
' 确保当前目录是正确的
ftp1.ChangeDir("/PSD")
ftp1.ChangeDir(receiverName)
ftp1.ChangeDir(CurrentTable.Current("流水号"))
' 上传文件
If ftp1.Upload(dlg.FileName, fileName, True) Then
MessageBox.Show("文件上传成功:" & fileName)
Else
MessageBox.Show("文件上传失败!")
End If
Catch ex As Exception
MessageBox.Show("文件上传过程中出错:" & ex.Message)
End Try
End If
'第三步,把ftp路径添加到单元格
Try
Dim lst As New List(Of String)
' 获取当前目录下的所有文件
Dim fileList = ftp1.GetFileList().ToList() ' 转换为List
' 正确声明循环变量 file
For Each file As Object In fileList
lst.Add("\PSD\"& fl & "\" & file.ToString())
Next
CurrentTable.Current.DataRow.Lines("付款支持性文件") = lst
Catch ex As Exception
MessageBox.Show("获取文件列表失败:" & ex.Message)
End Try
Catch ex As Exception
MessageBox.Show("文件选择或上传过程出错:" & ex.Message)
End Try
上传之后,用列自带的窗口打不开了
提示如下:
此主题相关图片如下:打开失败.png

老师帮忙看看哪里出现问题了啊