2010-06-25 40 views
0

我提供了一個公共的FTP帳戶供人們上傳文件到一個臨時文件夾中。一個AJAX界面顯示新鮮文件,然後用戶可以標記文件並將其移動到另一個文件夾中。我可以在服務器上獲取FTP上傳的IP地址嗎?

我想向每個用戶顯示他們自己上傳的文件,而不是其他人可能同時上傳的所有其他文件。個人FTP帳戶是沒有選擇。

有沒有辦法通過IP地址連接登錄用戶和FTP上傳?我可以使用PHP找出任何給定文件的上傳者IP嗎?

回答

1

有沒有辦法通過IP地址連接登錄用戶和FTP上傳?我可以使用PHP找出任何給定文件的上傳者IP嗎?

如果您以前沒有捕獲FTP,則無法輕鬆找到以前的FTP上傳的IP地址數據。展望未來,你當然可以記錄這一點,但:

1)只有在FTP服務器允許它

2)它可能會寫到你需要解析,然後與實際的文件進行比較的日誌(不是微不足道的)

3)基本方法是有缺陷的 - 除非你只有通過局域網連接的用戶,否則不要求FTP連接的客戶端地址與客戶端連接相同HTTP連接。 (例如,HTTP連接可能會通過代理,直接通過FTP連接)。

稍微好一點的方法是使用用戶名而不是IP地址(儘管您仍然遇到問題1和2需要解決)。

更好的是,取消FTP並使用HTTP進行上傳。

C.

+0

謝謝,這似乎是一個很好的綜合報道。我知道這個概念不是很乾淨,所以改變它可能會更好,而不是花大力氣去實現它。 – pixelistik 2010-06-25 13:10:31

1

用PHP做,它顯示在網絡上的權利?

在你的mysql或其他數據庫上做一個新表! 每次他們發送一個文件,保存到DB上的新表,路徑,IP,Web用戶名(如果有的話)和md5sum,如果你以後需要,然後,當列表時,你只需要搜索數據庫的路徑和打印用戶名或IP ... 當它們刪除時,刪除具有該路徑的行,並在它們移動時更改該行的路徑。 很簡單:)

;)

編輯:對不起,我的英語,我希望你明白它...

0

下列之一是可能的:

  • 更改您的FTP服務器將文件名和IP地址保存到數據庫或文件。
  • 通過FTP服務器日誌(它應該包含IP地址和文件名)並定期將這些信息存儲在數據庫中。
  • 讓用戶通過HTTP上傳文件。在這種情況下,您可以使用PHP實現它並存儲IP和文件名。