簡體   English   中英

Windows主機上的php腳本未列出ftp文件(ftp_rawlist問題)

[英]php script on Windows hosting does not list ftp files (ftp_rawlist issues)

我正在嘗試在Windows共享主機上使用php ftp函數列出來自外部FTP服務器的一些文件,但出現了幾個問題。

我首先嘗試使用了幾個Web應用程序,例如ajaxplorer和net2ftp,但是我感到沮喪,因此我決定制作一個非常基本的腳本進行測試。

<?php   
$ftp_server = "alinuxftpserver";
$ftp_user = "user";
$ftp_pass = "pass";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// change temp folder (windows)
putenv("TMP=D://inetpub//webs//domain//net2ftp//tmp");
echo getenv('TMP'); 

// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) 
{
    echo "Connected as $ftp_user@$ftp_server\n";
} 
else 
{
    echo "Couldn't connect as $ftp_user@$ftp_server\n";
}

if(ftp_pasv( $conn_id, true )) 
      echo "Passive mode, it worked<br/>"; 
    else 
      echo "Passive mode, it didn't work<br/>";

$contents = ftp_rawlist($conn_id, ".");
var_dump($contents);

ftp_close($conn_id);  

die;

?>

在我的本地主機(linux)上,它返回一個數組,而在托管它的Windows上,它返回:

Warning: ftp_rawlist() [function.ftp-rawlist]: php_connect_nonb() failed: No such file or directory (2) in D:\inetpub\webs\domain\ftp.php on line 26
bool(false)

無法理解..該目錄在外部ftp服務器上應為“ /”,當然還有一些文件和文件夾(2個文件夾和1個文件)。實際上,在我的MAMP安裝中,它運行良好。

主持人告訴我,服務器配置還可以。

使用ftp_pasv($ conn_id,true); 某些ftp連接只能在被動模式下工作

檢查您的FTP服務器日志。 就我而言,pasv_address設置為錯誤的IP地址。

遲到總比不到好...我遇到了同樣的問題。 在Linux服務器上,一切工作正常,但是在Windows Server(許多版本)下,我們遇到了許多問題,包括ftp_nlist()返回空數組。 這對我們有用,但我不知道為什么!

ftp_nlist($handler, '*');

我不確定100%,但是我想,您應該使用$contents = ftp_rawlist($conn_id, "/"); 而不是$contents = ftp_rawlist($conn_id, ".");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM