免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: caesarok
打印 上一主题 下一主题

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

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

回复 #9 flw 的帖子

ftp.storbinary('STOR %s' % filename, file_handler, bufszie)
这里的 filename 不能带路径。
split 一下,只留下文件名就可以了。
---------------
我换成
ftp.cwd(DIRN)
ftp.set_pasv(False)
file='d.pdf'
#filename='D:\\python\\深入学习.Python程序开发.pdf'
#file_handler = open(filename,'rb')
#print filename,"uploading...."
print  file," downloading...."
try:
        #ftp.storbinary('STOR %s' % filename, file_handler,bufsize) #上传文件
        ftp.retrbinary('PETR %s' %file, open(file,'wb').write)   #下载
except ftplib.error_perm:
        #print 'ERROR: cannot read filename "%s"' % filename
         print 'ERROR: cannot read file "%s"' % file
ftp.set_debuglevel(0)
#file_handler.close()
ftp.quit()

--------------
*get* '220 Welcome\r\n'
*resp* '220 Welcome'
*cmd* 'USER iislog'
*put* 'USER iislog\r\n'
*get* '331 Please specify the password.\r\n'
*resp* '331 Please specify the password.'
*cmd* 'PASS **************'
*put* 'PASS **************\r\n'
*get* '230 Login successful.\r\n'
*resp* '230 Login successful.'
*welcome* '220 Welcome'
220 Welcome
*cmd* 'CWD /download'
*put* 'CWD /download\r\n'
*get* '250 Directory successfully changed.\r\n'
*resp* '250 Directory successfully changed.'
d.pdf  downloading....
*cmd* 'TYPE I'
*put* 'TYPE I\r\n'
*get* '200 Switching to Binary mode.\r\n'
*resp* '200 Switching to Binary mode.'
*cmd* 'PORT 192,168,202,7,24,204'
*put* 'PORT 192,168,202,7,24,204\r\n'
*get* '200 PORT command successful. Consider using PASV.\r\n'
*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"

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2009-02-12 12:58 |只看该作者
问题真多,就不会举一反三麽。
看看 FTP 的 RFC 吧。还有你的 ftplib 的实现。
不带钱的问题,回答起来真没劲。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2009-02-12 13:00 |只看该作者
估摸着这样就可以了:
ftp.storbinary( file, file_handler, bufszie)

论坛徽章:
0
14 [报告]
发表于 2009-02-12 13:27 |只看该作者

回复 #12 flw 的帖子

很谢谢你了!

对您的景仰之情犹如滔滔江水,又如黄河泛滥,一发不可收拾!

兄弟,我人在广州,有空过来的话,请你吃饭呀!

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

论坛徽章:
0
15 [报告]
发表于 2009-02-12 13:37 |只看该作者
原帖由 flw 于 2009-2-12 11:03 发表
改成 ftp.set_pasv(False) 试一下。


为什么被动模式不行?

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

回复 #12 flw 的帖子

filename= 'D:\\python\\2.pdf'
a=os.path.basename(filename)

原来那个需要文件名,不要路径, 终于成功了!!!



  1. *get* '220 Welcome\r\n'
  2. *resp* '220 Welcome'
  3. "****connected to host "192.168.1.128"
  4. *cmd* 'USER iislog'
  5. *put* 'USER iislog\r\n'
  6. *get* '331 Please specify the password.\r\n'
  7. *resp* '331 Please specify the password.'
  8. *cmd* 'PASS **************'
  9. *put* 'PASS **************\r\n'
  10. *get* '230 Login successful.\r\n'
  11. *resp* '230 Login successful.'
  12. *welcome* '220 Welcome'
  13. 220 Welcome
  14. *cmd* 'CWD /download/'
  15. *put* 'CWD /download/\r\n'
  16. *get* '250 Directory successfully changed.\r\n'
  17. *resp* '250 Directory successfully changed.'
  18. *cmd* 'TYPE A'
  19. *put* 'TYPE A\r\n'
  20. *get* '200 Switching to ASCII mode.\r\n'
  21. *resp* '200 Switching to ASCII mode.'
  22. *cmd* 'PORT 192,168,202,7,30,8'
  23. *put* 'PORT 192,168,202,7,30,8\r\n'
  24. *get* '200 PORT command successful. Consider using PASV.\r\n'
  25. *resp* '200 PORT command successful. Consider using PASV.'
  26. *cmd* 'LIST'
  27. *put* 'LIST\r\n'
  28. *get* '150 Here comes the directory listing.\r\n'
  29. *resp* '150 Here comes the directory listing.'
  30. -rwxrwxrwx    1 0        0        15839923 Feb 12 06:32 2.pdf
  31. *get* '226 Directory send OK.\r\n'
  32. *resp* '226 Directory send OK.'
  33. None
  34. *cmd* 'TYPE A'
  35. *put* 'TYPE A\r\n'
  36. *get* '200 Switching to ASCII mode.\r\n'
  37. *resp* '200 Switching to ASCII mode.'
  38. *cmd* 'PORT 192,168,202,7,30,9'
  39. *put* 'PORT 192,168,202,7,30,9\r\n'
  40. *get* '200 PORT command successful. Consider using PASV.\r\n'
  41. *resp* '200 PORT command successful. Consider using PASV.'
  42. *cmd* 'NLST'
  43. *put* 'NLST\r\n'
  44. *get* '150 Here comes the directory listing.\r\n'
  45. *resp* '150 Here comes the directory listing.'
  46. *get* '226 Directory send OK.\r\n'
  47. *resp* '226 Directory send OK.'
  48. ['2.pdf']
  49. D:\python\2.pdf uploading....
  50. *cmd* 'TYPE I'
  51. *put* 'TYPE I\r\n'
  52. *get* '200 Switching to Binary mode.\r\n'
  53. *resp* '200 Switching to Binary mode.'
  54. *cmd* 'PORT 192,168,202,7,30,10'
  55. *put* 'PORT 192,168,202,7,30,10\r\n'
  56. *get* '200 PORT command successful. Consider using PASV.\r\n'
  57. *resp* '200 PORT command successful. Consider using PASV.'
  58. *cmd* 'STOR 2.pdf'
  59. *put* 'STOR 2.pdf\r\n'
  60. *get* '150 Ok to send data.\r\n'
  61. *resp* '150 Ok to send data.'
  62. *get* '226 File receive OK.\r\n'
  63. *resp* '226 File receive OK.'
复制代码

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

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2009-02-12 15:05 |只看该作者
原帖由 luffy.deng 于 2009-2-12 13:37 发表

为什么被动模式不行?

因为防火墙的原因,通常不行。

[ 本帖最后由 flw 于 2009-2-12 15:08 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
18 [报告]
发表于 2009-02-12 15:07 |只看该作者
原帖由 caesarok 于 2009-2-12 13:27 发表
很谢谢你了!

对您的景仰之情犹如滔滔江水,又如黄河泛滥,一发不可收拾!

兄弟,我人在广州,有空过来的话,请你吃饭呀!

不客气啊。

论坛徽章:
0
19 [报告]
发表于 2009-02-12 16:16 |只看该作者
原帖由 flw 于 2009-2-12 15:05 发表

因为防火墙的原因,通常不行。

感觉搂主还是应该查一下是不是sever端防火墙导致的。如果是改成false客户端防火墙也有可能导致同样的问题。

论坛徽章:
0
20 [报告]
发表于 2009-02-12 18:13 |只看该作者

回复 #19 luffy.deng 的帖子

我换成True就不行,换成false就可以,

下载时,取文件名时总有些问题,不知道你有什么办法!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP