2012-05-29 118 views
0

我正在嘗試爲使用PHP的FTP文件創建進度條。要開始這個,我需要找到要下載的項目的文件大小。問題是該文件沒有擴展名 - 它只是「地圖」。當使用PHP的filesize()時,我得到一些錯誤。我的假設是,它需要一個指定的擴展(用擴展測試,它工作正常)。我想在做到底:通過FTP在FTP服務器上檢查文件大小是否存在沒有擴展名的文件?

  1. 確定遠程文件
  2. 啓動FTP下載
  3. 發送AJAX調用本地文件,以確定其文件大小的文件大小
  4. 增加顯示進度條與JS

我的假設是,這應該工作 - 也就是說,如果我可以確定沒有定義的擴展名的文件的初始大小。

這是可能的,還是有另一種方法可能更容易?

+0

你會得到什麼錯誤? – 2012-05-29 14:21:47

+0

'Warning:filesize()[function.filesize]:stat在第9行的/local/file/target/path/example.php中的/ remote/file/target/path/map失敗' –

+0

在文件上測試它定義的擴展名不會產生錯誤,並且工作正常。 –

回答

4

如果我正確理解你要做什麼(從FTP服務器下載遠程文件),我不認爲你可以使用filesize函數,因爲它只處理本地文件。爲了得到一個遠程文件的文件大小的FTP服務器上,你需要使用這樣的事情:

$file = '/remote/path/map'; 
$conn_id = ftp_connect($ftp_server); 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
$res = ftp_size($conn_id, $file); 

if ($res != -1) { 
    echo "size of $file is $res bytes"; 
} else { 
    echo "couldn't get the size"; 
} 
ftp_close($conn_id); 

看一看ftp_size function

+0

完美 - 我不知道這個功能,應該正是我需要的。謝謝。 –

+0

@pennstate_fanboy請注意,某些FTP服務器不支持文件大小請求。在這種情況下你會得到-1,對此你沒有太多的辦法。 –

+0

剛剛在內部的apache服務器上測試過,它完全符合我的需求,再次感謝。 –

相關問題