vb 中 inet ftp 下载中由于路径中存在空格出现无法下载的解决方法
rivate Sub Command7_Click()Dim str1 As String
Dim str2 As String
If Frame5.Visible = True Then
MsgBox "请等上次的上传和下载任务完成之后在进行下一次任务!", vbOKOnly + vbInformation, "提示信息"
Exit Sub
End If
If Adodc1.Recordset.EOF = True Then
Exit Sub
End If
If MsgBox("你确定将要为名称为【" & Trim(Adodc1.Recordset.Fields("货物名称")) & "】上传图片吗?", vbYesNo + vbQuestion, "询问信息") = vbNo Then
Exit Sub
End If
CommonDialog1.Filter = "图片文件 (.JPEG)|*.jpg"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then
MsgBox "没有任何东西上传!请重新选择!", vbOKOnly + vbInformation, "错误信息"
Exit Sub
End If
Call 自动检查文件夹 '检查是否存在临时文件夹,不存在自动创建
Label12.Caption = "正在上传,请稍候……"
str2 = "c:\临时文件夹\2.jpg"
str1 = CommonDialog1.FileName
If Dir(str2) <> "" Then
Kill str2
End If
FileCopy str1, str2
Inet1.URL = "192.168.0.109"
Inet1.Protocol = icFTP
Inet1.UserName = "admin"
Inet1.Password = "wuyachao99"
Inet1.Execute "", "PUT c:\临时文件夹\2.jpg /图片资源/" & Adodc1.Recordset.Fields("序号") & ".jpg"
Frame5.Visible = True
Do While Inet1.StillExecuting
DoEvents
Loop
Frame5.Visible = False
sql1 = "update 公司货物信息表 set 是否有图 = 1 where id_公司货物名称 ='" & Adodc1.Recordset.Fields("序号") & "'"
Adodc1.Recordset.ActiveConnection.Execute sql1
Inet1.Execute , "QUIT"
Kill str2
MsgBox "上传完毕!", vbInformation + vbOKOnly, "提示"
End Sub
Private Sub 自动检查文件夹()
If Dir(("c:\临时文件夹"), vbDirectory) = "" Then
MkDir "c:\临时文件夹"
End If
End Sub
上述为代码,思路很简单,为了避免空格路径的出现,先上传到一个临时文件夹中,取一个通用名字2.jpg,在将这个路径的文件通过inet上传到ftp即可,
下载也为一样的道理