FTP访问的问题,应急!解决了可以多给几百分!很急,多谢多谢!

yjyb 2003-08-20 11:39:53
请大家访问帮忙访问ftp://zjhy.dns0755.net/1.txt文件,我用CuteFtp可以正常访问下载,用flashget也完全正常,但是用IE就不行。用vb自带的inet控件也实现不了下载!
如有兄弟能提供代码可以实现下载,必当高分相送!多谢多谢!
...全文
52 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Garfield 2003-08-24
  • 打赏
  • 举报
回复
原来你是这样的意思
你试一下把空格改为 %20 看看行不行
yjyb 2003-08-24
  • 打赏
  • 举报
回复
搞了半天,终于搞定了,我上面的问题是出在“复制 1”中的空格上,好像是inet控件不接受有空格的路径参数,
Inet1.Execute "ftp://zjhy.dns0755.net", "GET 浙江省防汛警戒系统/实况.dat " & chr(34) &App.Path & "\实况.dat" & chr(34)
这样就可以了。
yjyb 2003-08-24
  • 打赏
  • 举报
回复
因为打包好的程序是任意安装位置的,所以只能用我的那个方法。
好了,该给分了,特别感谢: Garfield(猫仔|别忘了结帖,同志) 和其他朋友。
yjyb 2003-08-23
  • 打赏
  • 举报
回复
最新情况:
刚才讲的的有些问题,我原来是用鼠标右键拖动 "1" 文件夹,选择菜单上的"复制到当前位置",这样复制好的文件夹名为 "复制 1",在这个文件夹中程序有问题,表现为Inet1.StillExecuting值为false,但是把"复制 1"改为 "2"或别的名称就可以正常使用了。还是搞不懂怎么会这样?!
yjyb 2003-08-23
  • 打赏
  • 举报
回复
Inet1.Protocol = icFTP
Inet1.Execute "ftp://zjhy.dns0755.net", "GET 浙江省防汛警戒系统/实况.dat " & App.Path & "\实况.dat"
Do While Inet1.StillExecuting
DoEvents
Loop
以上这段代码在原来的文件夹中(如"d:\1")可以正常运行,Inet1.StillExecuting为Ture,但是把"d:\1"中所有文件复制到"d:\2"中,就有问题了,表现为Inet1.StillExecuting为False,这是为何?真是搞不懂啊!~~
Alicky 2003-08-23
  • 打赏
  • 举报
回复
微软提供了Internet传输控件(Internet Transfer Control),它能够让你使用Visual Basic 6的应用程序使用FTP来传输文件。要使用这个控件,你需要将微软的Internet传输控件添加到自己的项目里,然后将这个控件加到表单里。

现在是该设置控件属性的时候了:

将URL属性设置为FTP服务器的URL。
将用户名(Username)和密码(Password)的属性设置为合法的用户ID和密码,这也是FTP所要用到的。(如果你将这些属性留成空白,那么用户名属性就会被设置为匿名(anonymous),而密码属性会被设置为一个缺省的密码。)
将协议(Protocol)属性设置为icFTP,这是访问FTP所需要的。设置一下RequestTimeout,以防止在服务器没有相应的时候控件挂起。例如:
With Inet1
.URL = "ftp://myftpserver"
.UserName = "myusername"
.Password = "mypassword"
.Protocol = icFTP
.RequestTimeout = 120
End With

要进行GET或者PUT操作,就要调用Execute方法。第一个自变量是可选的,它允许你指定URL。第二个自变量能够让你指定要进行的操作。当GET操作被调用的时候,你必须传递被请求文件的名称和要创建的本地文件名。当PUT操作被调用的时候,要被上传的文件就会被指定,然后就在FTP服务器上创建这个文件。

Call Inet1.Execute(, "GET ftpfile.txt c:\temp\ftpfile.txt")
Call Inet1.Execute(, "PUT c:\temp\ftpfile.txt ftpfile2.txt")

Execute方法是异步工作的,所以你可以使用StateChanged事件来监控这项操作的进展情况。State自变量会是一个StateConstant。你可以使用对象浏览器(Object Browser)或者在线帮助(Online Help)来查看State所有合法的值。

Private Sub Inet1_StateChanged(ByValState As Integer)
Debug.PrintState
End Sub

如果State等于icError,那么你可以通过ResponseCode和ResponseInfo属性来获取错误信息。

Debug.Print Inet1.ResponseCode
Debug.Print Inet1.ResponseInfo
Garfield 2003-08-23
  • 打赏
  • 举报
回复
判断服务器返回的代码
yjyb 2003-08-22
  • 打赏
  • 举报
回复
inet控件是否得到 execute方法成功与否的返回值,或者说,一条下载文件的语句,我们如何知道它是否正确执行呢?!
Garfield 2003-08-21
  • 打赏
  • 举报
回复
Me.Inet1.Execute "ftp://zjhy.dns0755.net", "GET 1.txt " & app.path & "\1.txt"
先这样用一下吧。你那个例子是MSDN上面的,我也不行。

问题还没找到,获取的byteT()是没有数据的。
yjyb 2003-08-21
  • 打赏
  • 举报
回复
Dim byteT() As Byte
Dim strURL As String

Inet1.Protocol = icFTP
'设置 strURL 为一个有效的地址。
strURL = "ftp://zjhy.dns0755.net/1.txt"
byteT() = Inet1.OpenURL(strURL, icByteArray)

Open App.Path & "\1.txt" For Binary Access Write As #1
Put #1, , byteT()
Close #1
请问,上面这段代码为什么不行啊?!
Garfield 2003-08-21
  • 打赏
  • 举报
回复
斑竹他这个ftp可以匿名访问的。
zqfleaf 2003-08-21
  • 打赏
  • 举报
回复
ftp://用户名:密码@zjhy.dns0755.net/1.txt
^___^ 不行这两个调一下
zqfleaf 2003-08-21
  • 打赏
  • 举报
回复
ftp://用户名:密码@zjhy.dns0755.net/1.txt
^___^ 不行这两个调一下
Garfield 2003-08-21
  • 打赏
  • 举报
回复
现在又可以了,昨晚ping不通。
Me.Inet1.Execute "ftp://zjhy.dns0755.net", "GET 1.txt C:\1.txt"
就这样下载,没问题啊!
yjyb 2003-08-21
  • 打赏
  • 举报
回复
我是在局域网内部测试的,用cuteftp软件是可以的,用flashget也行
你用这两个软件试试
现在就是不知道VB如何编
Garfield 2003-08-21
  • 打赏
  • 举报
回复
找不到服务器

ping request timeout

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧