4

ストリームからファイルの内容を取得しています

$src_file = file_get_contents("php://input");

しかし、ファイルのファイルタイプとファイルサイズも知る必要があります。これは機能しません:

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

ファイルを書き込んでから filetype/filesize を呼び出すことができると思いますが、ストリームまたは変数の内容からファイルタイプとファイルサイズを取得する方法はありますか?

4

2 に答える 2

2

文字列の全長を取得するには、 を使用します。strlenこれは機能する必要があります。ストリームのファイルタイプをスニッフィングする簡単な方法はありません。これを行うべきではありません。

php://inputただし、おそらくリクエストからのを扱っているためPUT、クライアントは通常、Content-Typeヘッダーに適切な MIME タイプを設定する必要があります。$_SERVER['CONTENT_TYPE']これは、sapi から、または$_SERVER['HTTP_CONTENT_TYPE']sapi に応じて取得できます。

于 2013-01-07T20:15:23.583 に答える
-1

ストリームでは、ファイルの「タイプ」は意味がありません。ストリームはビットの入力を表すだけです。したがって、filetypePHPは単に型を見つけることができないため、呼び出しは失敗します。しかしphp://input、ファイルではありません。これはphpに与えられた入力です。たとえばLinuxでは、次のことができます。

ls | php file.php

この場合、PHPへの入力はファイルではなく、別のプログラムの出力です。

于 2013-01-07T20:04:21.717 に答える