免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7028 | 回复: 23
打印 上一主题 下一主题

又谈FTP应用,SOS希望在不改变服务器配置基础上去找办法解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-11 18:07 |只看该作者 |倒序浏览
看过之前的FTP相关应用,试了感觉到都不明不白,
这回我做了一个,发现应用出现一个问题,


  1. #-*-coding=gbk
  2. from ftplib import FTP
  3. import sys,os
  4. DIRN='/download'
  5. bufszie = 1024
  6. ftp=FTP()
  7. ftp.set_debuglevel(2)
  8. ftp.connect('192.168.1.128','port')

  9. ftp.login('iislog','passwd')
  10. print ftp.getwelcome()
  11. ftp.cwd(DIRN)
  12. ftp.set_pasv(True)
  13. filename='D:\\python\\python-3.0.msi'
  14. file_handler = open(filename,'rb')
  15. print filename,"uploading...."
  16. ftp.storbinary('STOR %s' % filename, file_handler, bufszie) #上传文件
  17. ftp.set_debuglevel(0)
  18. file_handler.close()
  19. ftp.quit()

复制代码



运行结果如下:

  1. *get* '220 Welcome\r\n'
  2. *resp* '220 Welcome'
  3. *cmd* 'USER iislog'
  4. *put* 'USER iislog\r\n'
  5. *get* '331 Please specify the password.\r\n'
  6. *resp* '331 Please specify the password.'
  7. *cmd* 'PASS **************'
  8. *put* 'PASS **************\r\n'
  9. *get* '230 Login successful.\r\n'
  10. *resp* '230 Login successful.'
  11. *welcome* '220 Welcome'
  12. 220 Welcome
  13. *cmd* 'CWD /download'
  14. *put* 'CWD /download\r\n'
  15. *get* '250 Directory successfully changed.\r\n'
  16. *resp* '250 Directory successfully changed.'
  17. D:\python\python-3.0.msi uploading....
  18. *cmd* 'TYPE I'
  19. *put* 'TYPE I\r\n'
  20. *get* '200 Switching to Binary mode.\r\n'
  21. *resp* '200 Switching to Binary mode.'
  22. *cmd* 'PASV'
  23. *put* 'PASV\r\n'
  24. *get* '227 Entering Passive Mode (192.168.1.128,138,2)\r\n'
  25. *resp* '227 Entering Passive Mode ('192.168.1.128,138,2)'
  26. Traceback (most recent call last):
  27.   File "C:\Documents and Settings\liuhanhua\桌面\s\python\ftp.py", line 17, in <module>
  28.     ftp.storbinary('STOR %s' % filename, file_handler, bufszie) #上传文件
  29.   File "C:\Python26\lib\ftplib.py", line 448, in storbinary
  30.     conn = self.transfercmd(cmd)
  31.   File "C:\Python26\lib\ftplib.py", line 356, in transfercmd
  32.     return self.ntransfercmd(cmd, rest)[0]
  33.   File "C:\Python26\lib\ftplib.py", line 324, in ntransfercmd
  34.     conn = socket.create_connection((host, port), self.timeout)
  35.   File "C:\Python26\lib\socket.py", line 512, in create_connection
  36.     raise error, msg
  37. socket.error: [Errno 10061]
复制代码


问题还是卡在ftp.storbinary('STOR %s' % filename, file_handler, bufszie)
我登陆的是linux服务器,在不改变服务器配置基础上,   哪位大虾帮助我解决一下这个难题呀, 多谢!!

[ 本帖最后由 caesarok 于 2009-2-12 10:54 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-02-11 19:22 |只看该作者
open(filename,'rb')

论坛徽章:
0
3 [报告]
发表于 2009-02-11 19:28 |只看该作者

回复 #2 23号 的帖子

open(filename,'rb') 也一样的

论坛徽章:
0
4 [报告]
发表于 2009-02-11 20:35 |只看该作者
socket.error: Errno 10061?这个大部分时候是指定端口上的服务不存在或者是被防火墙拦住了。仿佛storbinary的时候server端端口中途关闭了或者根本没开。

[ 本帖最后由 luffy.deng 于 2009-2-11 21:14 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-02-12 09:08 |只看该作者
在不改变FTP服务器的情况下有什么办法解决,
用别的FTP客户端工具没有这种问题呀
我们开发此类工具难道都要求服务器适应client端的需要吗

[ 本帖最后由 caesarok 于 2009-2-12 09:49 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-02-12 10:59 |只看该作者
transfercmd建立socket连接失败了。不是客户端防火墙的问题么?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2009-02-12 11:03 |只看该作者
改成 ftp.set_pasv(False) 试一下。

论坛徽章:
0
8 [报告]
发表于 2009-02-12 11:34 |只看该作者

回复 #7 flw 的帖子

谢谢你了,刚才的问题解决了,  
但是出现另一个问题, 上传的目录我能写入,但是结果还出现下面状况,

*get* '553 Could not create file.\r\n'
*resp* '553 Could not create file.'
ERROR: cannot read filename "D:\python\python-3.0.msi'"

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2009-02-12 11:37 |只看该作者
ftp.storbinary('STOR %s' % filename, file_handler, bufszie)
这里的 filename 不能带路径。
split 一下,只留下文件名就可以了。

论坛徽章:
0
10 [报告]
发表于 2009-02-12 12:54 |只看该作者
*get* '200 Switching to Binary mode.\r\n'
*resp* '200 Switching to Binary mode.'
*cmd* 'PORT 192,168,202,7,24,130'
*put* 'PORT 192,168,202,7,24,130\r\n'
*get* '200 PORT command successful. Consider using PASV.\r\
*resp* '200 PORT command successful. Consider using PASV.'
*cmd* 'PETR d.pdf'
*put* 'PETR d.pdf\r\n'
*get* '500 Unknown command.\r\n'
*resp* '500 Unknown command.'
ERROR: cannot read file "d.pdf"
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP