簡體   English   中英

php ftp_put不會創建文件

[英]php ftp_put does not create file

我正在嘗試將圖像文件從本地PC上傳到遠程服務器。 圖像來自簡單的html輸入(type = file),文件數組包含以下內容:

Array ( [name] => image42.jpg [type] => image/jpeg [tmp_name] => C:\wamp\tmp\phpBB52.tmp [error] => 0 [size] => 6051 ) 

如您所見,我的本地PC正在使用Windows。 嘗試上傳圖像文件的代碼如下:

$conn_id = ftp_connect($ftp_server, $ftp_port);

$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);

if(!ftp_chdir($conn_id, $folder_path))
{
    $create_folder = ftp_mkdir($conn_id, $folder_path);
    ftp_chmod($conn_id, 0777, $folder_path);
}

這完美地連接到服務器,甚至創建一個文件夾,如果它不存在。 然后,當我們到達上傳部分時,

ftp_pasv($conn_id, true);

// upload a file
$upload = ftp_put($conn_id, $new_dir, $file_dir, FTP_BINARY);

變量$upload變為false

$file_dir包含C:\\wamp\\tmp\\phpBB52.tmp (即文件的tmp_name )。

$new_dir包含帶有圖像路徑的遠程目錄: img.example.com/data/images/blabla.jpg

此外,返回的錯誤是:

Warning: ftp_put() [<a href='function.ftp-put'>function.ftp-put</a>]: Could not create file. in C:\wamp\www\example\example.php on line 95

我沒有在Google和StackOverflow上找到任何有用的東西。 可能是什么原因?

這對我有用。 它可能是服務器的根目錄與FTP根目錄不同。

嘗試使用其他程序登錄您的FTP帳戶並檢查根目錄。 例如,我的FTP根目錄是/public_html/ ,但服務器是/home/cms/public_html/ 因此,如果我的文件的遠程目標設置為/home/cms/public_html/images/82.jpg只需將其更改為/public_html/images/82.jpg

我的腳本試圖定期上傳文件到FTP位置(覆蓋以前上傳的同名文件)並且工作正常。

它現在開始顯示此錯誤,我確實從FTP位置刪除了該文件並使用該腳本再次上傳,錯誤消失了。

該文件必須已被FTP位置中的任何其他應用程序鎖定,以防止其被覆蓋或可能已損壞。

暫無
暫無

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

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