从流中获取filetype / filesize

时间:2013-01-07 19:57:24

标签: php

我正在使用

从流中获取文件内容
$src_file = file_get_contents("php://input");

但我也需要知道文件的文件类型和文件大小。这不起作用:

$src_type = filetype("php://input");
$src_size = count($src_file);

我想我可以编写该文件然后调用filetype / filesize,但有没有办法从流或变量内容中获取文件类型和文件大小?

2 个答案:

答案 0 :(得分:1)

要获取字符串的完整长度,请使用strlen,此必须才能正常工作。 没有简单的方法来嗅探流的文件类型,你不应该尝试这样做。

但是,由于您正在处理php://input,可能来自PUT请求,因此客户端通常应在Content-Type标头中设置正确的mimetype。您可以$_SERVER['CONTENT_TYPE']$_SERVER['HTTP_CONTENT_TYPE']取决于sapi。

答案 1 :(得分:-1)

在流中,文件的“类型”没有任何意义。流只表示位的输入。因此filetype调用将失败,因为PHP根本找不到类型。但php://input不是文件。它是给php的输入。例如,在linux中,它可以执行以下操作:

ls | php file.php

在这种情况下,PHP的输入不是文件,而是另一个程序的输出。