2014-02-20 50 views
2

我試圖找出文件女巫的大小是通過在PHP中的請求。目前,即時通訊上傳我的文件是這樣的:PHP put - 文件大小?

<?php 
/* PUT data comes in on the stdin stream */ 
$putdata = fopen("php://input", "r"); 

/* Open a file for writing */ 
$fp = fopen("myputfile.ext", "w"); 

/* Read the data 1 KB at a time 
    and write to the file */ 
while ($data = fread($putdata, 1024)) 
    fwrite($fp, $data); 

/* Close the streams */ 
fclose($fp); 
fclose($putdata); 
?> 

但如果IM transfering大文件並沒有我想檢查寫入的文件的大小是一樣的可能性上傳可能在中途被取消作爲正在上傳的文件的原始大小。如何做到這一點?

而且這將是巨大的,如果有人可以解釋這部分我一點:

$putdata = fopen("php://input", "r"); 

在手冊中,這樣解釋的: PHP://輸入是一個只讀流,使您從請求主體讀取原始數據。

但我真的不明白這一點。如果一個文件正在被這樣讀取,它會一點一點地讀取,或者一次讀取整個文件?

謝謝。

+0

該文件一點一點讀取,因爲它到達服務器。 –

+0

您可能需要建立一個預先調用者,可以爲您提供有關您正在接收的文件的元數據。當然,如果你控制外部來源,你只能做到這一點。 – 2014-02-20 21:26:17

回答

3

據我所知,沒有辦法可靠地做到這一點,除非你有一個客戶端應用程序。您可能需要在JavaScript中完成整個文件傳輸。