2011-03-24 132 views
11

文件沒有上傳到FTP和錯誤:警告:ftp_put()[function.ftp-put]:無法打開該文件:沒有這樣的文件或目錄進入。我們使用下面的代碼:ftp上傳不起作用

$server = 'ftp.domain.com'; 
$ftp_user_name = '[email protected]'; 
$ftp_user_pass = 'password'; 
$dest = 'files/test.txt'; 
$source = 'test.txt'; 
$src = ini_get("upload_tmp_dir"); 

$connection = ftp_connect($server); 
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass); 
if (!$connection || !$login) { die('Connection attempt failed!'); } 
$upload = ftp_put($connection, $dest, $source, FTP_BINARY); 
if (!$upload) { echo 'FTP upload failed!'; } 
ftp_close($connection); 
+0

你檢查服務器上的權限? (堅持它應該告訴你這是一個許可問題,一旦我有類似的問題,並用一個簡單的chmod解決) – 2011-03-24 21:29:50

+0

遠程文件目錄是否存在? – 2011-03-24 21:30:04

+0

腳本工作目錄中是否存在test.txt文件?看起來它無法在您的服務器上找到它應該上傳的文件。 – 2011-03-24 21:30:25

回答

25

下面是從php.net對ftp_put評論答案:


發現的概率,你不能把一個路徑目標文件 (即使我可以在dos ftp客戶端中做到這一點...?)

eg - 這不工作

ftp_put($conn, '/www/site/file.html','c:/wamp/www/site/file.html',FTP_BINARY); 

你必須把

ftp_chdir($conn, '/www/site/'); 
ftp_put($conn,'file.html', 'c:/wamp/www/site/file.html', FTP_BINARY); 

http://php.net/manual/en/function.ftp-put.php

+0

非常感謝這個答案。爲我解決了這個麻煩。 Tahnks! :) – helpse 2013-04-08 16:29:02

+0

FTP_BINARY爲我做到了!我在那裏沒有正確上傳圖片的FTP_ASCII。謝謝。 – 2014-02-19 21:11:02

1

我有同樣的問題,我把它用ftp_nb_put()解決。相同的功能,但它允許您的程序運行更多的連接或東西:-)