2014-02-20 48 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中完成整个文件传输。