2014-07-12 77 views
1

我在遠程主機上有一個網站。 我想通過ftp將php頁面上傳到另一個遠程服務器。PHP - ftp_put未能打開流?

我想上傳到服務器具有這些目錄(所有有權限777):

/ 
/public_html 
/public_html/files 

讓說,例如這些是FTP的詳細信息:

host: example.com 
user: user 
pass: pass 
port: 21 

可以請人幫忙我明白爲什麼這個代碼不工作:

$file = 'C:\Users\[my username]\Desktop\somefile.txt'; 
$remote_file = '/public_html/files/file.txt'; 

// set up basic connection 
$conn_id = ftp_connect("example.com",21); 

// login with username and password 
$login_result = ftp_login($conn_id, "user", "pass"); 
echo $login_result; 
// upload a file 
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { 
    echo "successfully uploaded $file\n"; 
} else { 
    echo "There was a problem while uploading $file\n"; 
} 

// close the connection 
ftp_close($conn_id); 

當我運行它我得到以下消息e:

Warning: ftp_put(C:\Users\User\Desktop\somefile.txt) [function.ftp-put]: failed to open stream: No such file or directory in /home/user/public_html/page.php on line 11 

任何幫助真的很感謝ive研究像瘋了似的,一直在努力的年齡。

+0

當您使用ftp_chdir()更改到'/ public_html/files'目錄並使用$ remote_file ='file.txt'時會發生什麼。它可以讓你改變目錄嗎?我對你的錯誤信息的解釋是,你上傳文件的服務器上不存在「/ home/user/public_html/files /」目錄。 – Evan

+0

查看[手冊](http://php.net/manual/en/function.ftp-put.php)中「Kev」左邊的評論,它也值得一看。 – Evan

+0

我做了你所說的,改成'/ public_html/files'沒有錯誤。雖然上傳仍然失敗,同樣的錯誤信息,我的猜測(可能是你的)是它必須是不存在的本地文件,但它確實:/? – user2625752

回答

0

$ remote_file ='files/file.txt'; 您應該試試這個