我正在使用
从流中获取文件内容$src_file = file_get_contents("php://input");
但我也需要知道文件的文件类型和文件大小。这不起作用:
$src_type = filetype("php://input");
$src_size = count($src_file);
我想我可以编写该文件然后调用filetype / filesize,但有没有办法从流或变量内容中获取文件类型和文件大小?
答案 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的输入不是文件,而是另一个程序的输出。