我正在使用curl php API来访问FTP链接。在特定站点上,它提供错误代码9(访问被拒绝)。但是,可以从IE和Firefox访问该链接。
然后我运行curl命令行,它给出了相同的“访问deinied”结果。
> d:>\curl -v ftp://ftp1.example.com/outgoing/EHF/dbex10win_en.zip
> * About to connect() to ftp1.example.com port 21 (#0)
> * Trying 204.50.113.145...
> * connected
> * Connected to ftp1.example.com (204.50.113.145) port 21 (#0) < 220 Microsoft FTP Service
> > USER anonymous < 331 Anonymous access allowed, send identity (e-mail name) as password.
> > PASS ftp@example.com < 230-Welcome to Example FTP site! < 230 Anonymous user logged in.
> > PWD < 257 "/" is current directory.
> * Entry path is '/'
> > CWD outgoing < 550 outgoing: Access is denied.
> * Server denied you to change to the given directory
> * Connection #0 to host ftp1.example.com left intact curl: (9) Server denied you to change to the given directory
> > QUIT < 221
> * Closing connection #0
但这个链接在Firefox中运行良好。 cUrl在这里有什么问题?感谢
答案 0 :(得分:3)
尝试摆弄curl的选项--ftp-method
--ftp-method [method] (FTP) Control what method curl should use to reach a file on a FTP(S) server. The method argument should be one of the follow‐ ing alternatives: multicwd curl does a single CWD operation for each path part in the given URL. For deep hierarchies this means very many commands. This is how RFC 1738 says it should be done. This is the default but the slowest behavior. nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full path to the server for all these commands. This is the fastest behavior. singlecwd curl does one CWD with the full target directory and then operates on the file "normally" (like in the multi‐ cwd case). This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'.
答案 1 :(得分:0)
它与CURL
无关,错误非常明确Server denied you to change to the given directory
...它只是一个访问问题......
添加username
和password
只是解决问题......
为什么它在浏览器上工作...没有自动目录重定向..为什么它不能在curl上工作? curl将使用标准ftp
进程,在您更改到相关目录之前将涉及登录
你可以通过php直接使用它.... fopen
或file_get_content
是我使用的作弊...就像你通过浏览器访问它一样
示例
set_time_limit(0);
file_put_contents("out.zip", file_get_contents('ftp://204.50.113.145/outgoing/EHF/dbex10win_en.zip'));
像魅力一样工作
答案 2 :(得分:0)
这意味着远程/ ftp服务器中不存在指定的目录,因此消息“服务器拒绝您更改到给定目录”。
该消息与您尝试将文件下载到的本地计算机无关。
登录ftp datacenter.myserver.com
,查看源目录是否存在。