2016-11-21 90 views
2

我通過FTP上傳XML文件:PHP ftp_put失敗

$ftp = "ftp"; 
$username = "username"; 
$pwd = "password"; 
$filename = $_FILES[$xyz][$abc]; 
$tmp = $_FILES['file']['tmp_name']; 
$destination = "/Content/EnquiryXML "; 

$connect = ftp_connect($ftp)or die("Unable to connect to host"); 
ftp_login($connect,$username,$pwd)or die("Authorization Failed"); 
echo "Connected!<br/>";    

if(!$filename) 
{ 
    echo"Please select a file"; 
} 

else 
{ 
    ftp_put($connect,$destination.'/'.$filename,$tmp,FTP_ASCII)or die("Unable to upload"); 
    echo"File successfully uploaded to FTP"; 
} 

我想送使用DOMDocument到FTP服務器上的XML文件創建,但我不能。

ftp_put返回false。

+0

請更新您的腳本錯誤消息你的問題。 – bassxzero

+0

@bassxzero連接! 無法上傳 – xecutioner

+0

我不能獲取文件動態上傳@bassxzero – xecutioner

回答

6

ftp_put問題最典型的原因是PHP默認爲激活模式。而在99%的情況下,必須切換到被動模式,才能使傳輸工作。使用ftp_pasv function

$connect = ftp_connect($ftp) or die("Unable to connect to host"); 
ftp_login($connect, $username, $pwd) or die("Authorization Failed"); 
// turn passive mode on 
ftp_pasv($connect, true); 

參見:在active and passive FTP connection modes

+0

即使這會有所幫助,請按[由@bassxzero的建議(http://stackoverflow.com/questions/40720260/send- a-xml-file-created-using-domdocumet-through-ftp-in-php/40721012#comment68668741_40720260)並向我們顯示錯誤消息。這會讓你的提問方式對其他人更有用。 –

+0

謝謝Martin .. – xecutioner

+0

做檢查*** EDITS – xecutioner

-1

這工作:

// connect and login to FTP server 
$ftp_server = "host"; 
$ftp_username = "username"; 
$ftp_userpass = "password"; 
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); 
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); 
$file ="$abc"; 

// upload file 
if (ftp_put($ftp_conn, "/$abc" , $file, FTP_ASCII)){ 
    echo "Successfully uploaded $file."; 
} else { 
    echo "Error uploading $file"; 
} 

// close connection 
ftp_close($ftp_conn); 
+1

什麼工作?你的代碼中沒有'ftp_pasv'!並且不要使用回答評論另一個答案。 –