2012-08-01 38 views
0

我在PHP下面的代碼:ftp_put():TYPE現在是8位二進制。爲什麼它給了我這個警告?

$connection = @ftp_connect (IP of the server, 21); 
ftp_login ($connection, User in FTP, Password in FTP); 

ftp_pasv ($connection, true); 
ftp_put ($connection, Remote File, Local file, FTP_BINARY); 

我創造FTP的連接,我可以登錄,但ftp_put函數總是上傳與警告的空文件:

Warning: ftp_put(): TYPE is now 8-bit binary 

但是,當我將FTP_BINARY更改爲FTP_ASCII時,文件可以上傳,但由於「特殊字符」(這是一張jpg照片),其內容與「原始文件」不同。問題是:

爲什麼不使用FTP_BINARY並顯示此警告?

+1

那麼它只是一個警告,問題出在哪裏:

當ftp_put()或ftp_get()前置於被動模式必須予以糾正? – 2012-08-01 10:53:03

+0

上傳到ftp的遠程文件是空的......這是一個問題,你不覺得嗎?我嘗試使用ftp_fput()並確保正在讀取的本地文件包含信息,但我遇到同樣的問題。 – doctore 2012-08-01 10:59:30

+0

你可否請檢查許可證,這通常發生在你對該目錄沒有正確的許可時。不要忘了授予Apache服務器權限,因爲他正在寫入該目錄 – 2012-08-01 11:07:24

回答

1

這些警告可以顯示或者與一個ftp_put()或ftp_get(),在FTP_BINARY或FTP_ASCII:

  • 警告:ftp_get():TYPE現在是8位二進制
  • 警告:ftp_get ():現在類型爲ASCII
  • 警告:ftp_put():TYPE現在是8位二進制
  • 警告:ftp_put():現在類型爲ASCII

您CA使用@ftp_put或@ftp_get將它們靜音,但在「get」的情況下,系統地刪除目標文件而不被替換。

ftp_pasv($connection, true); 
相關問題