2014-08-27 137 views
0

我遇到了一個簡單的PHP腳本將一個文件上傳到ftp服務器的奇怪行爲。PHP ftp上傳錯誤

我創建了我的代碼下面的精簡版本,它會產生相同的錯誤:

<?php 

error_reporting(E_ALL); 
echo phpversion(); 

$ftpUrl = "mydomain"; 
$ftpUserName = "myuser"; 
$ftpPassword = 'mypass';  

$fileContents = "test"; 
file_put_contents('text.txt', $fileContents); 


//open ftp connection 
$conn_id = ftp_connect($ftpUrl, 1030); 

if(!$conn_id) 
    die('error while connecting to ftp'); 

$login_result = ftp_login($conn_id, $ftpUserName, $ftpPassword); 

if (!$login_result) 
    die('ftp login failed!'); 

//switch to passive mode 
ftp_pasv($conn_id, true); 

//upload file to ftp 
try 
{ 
    $fileToUpload = fopen('text.txt', 'r'); 

    if($fileToUpload == false) 
     die('can\'t open file to send!'); 

    $upload = ftp_fput($conn_id, 'testfile.txt', $fileToUpload, FTP_ASCII); 
} 
catch(Exception $e) 
{ 
    fclose($fileToUpload); 
    ftp_close($conn_id); 
    die('Error while uploading to ftp');    
} 

fclose($fileToUpload); 
ftp_close($conn_id); 

if (!$upload) 
    die('ftp upload failed'); 

>

在客戶端上的FTP服務器上運行腳本時,我收到以下錯誤。上傳與FileZilla的同一個文件到該FTP服務器工作正常(要上傳的文件時,建立連接在作品的記錄發生錯誤)

Warning: ftp_fput() [function.ftp-fput]: php_connect_nonb() failed: Operation now in progress (115) in {path} on line 38 

Warning: ftp_fput() [function.ftp-fput]: Type set to A in {path} on line 38 
ftp upload failed 
  • 該文件只包含幾行文字。
  • 在另一臺服務器上運行此腳本時,它工作正常。

服務器使用的PHP版本,28年3月5日

我一直是這樣錯誤小時了掙扎,這讓我發瘋了。任何線索?

+0

'類型設置爲A'從FTP服務器承認響應以ASCII模式傳輸文件的請求。 – user3338098 2016-07-19 17:26:19

+0

我相信這個問題是由於TCP/IP連接超時問題。 – user3338098 2016-07-19 17:29:00

+0

[「php \ _connect \ _nonb()失敗的可能的重複:正在進行中的操作(115)」間歇性地發生](http://stackoverflow.com/questions/15688331/php-connect-nonb-failed-operation-now -in-progress-115-happens-intermitten) – 2017-04-20 13:50:26

回答

-1

Ftp_put()需要一個文件作爲參數,你傳遞一個文件句柄

嘗試

ftp_put($conn_id,'testfile.txt', 'test.txt', FTP_ASCII); 
+0

這給了我同樣的錯誤。奇怪的部分是,傳入一個文件句柄在不同的FTP服務器上工作(略有不同的PHP版本)。 – middelpat 2014-08-27 17:36:24

+0

@symcbean他沒有使用'ftp_put'他正在使用'ftp_fput',他正在正確使用它。我有這個未知的問題。 – user3338098 2016-07-19 17:05:56