0

主にjQueryUploaderからPHPファイルをアップロードする例に基づいたスクリプトがあります。次のコードでファイルタイプを取得します(この$ _FILESコンポーネントを取得します)...

$fileType = (isset($_SERVER['HTTP_X_FILE_TYPE']) ? $_SERVER['HTTP_X_FILE_TYPE'] : $upload['type']);

ノート; $upload['type']は$_FILES['files']['type']から取得されます。

さて、これは問題ありません-一部のファイルにはこれからのfileType情報がないように見えるという事実を除いて。PHPでファイル情報とmimetype関数を使用すると、より正確な応答を得ることができますが、$ _ FILESオブジェクトでは機能せず、ファイルをs3に転送する前にこのチェックを実行しようとしているため、実際には実行したくありません。ローカルにロードします。

$ _FILESからより正確にレポートタイプを取得できるものがあるかどうか、またはこれらの代替PHP関数を実行するためにローカルでロードする必要があるかどうかを誰かにアドバイスできますか?

4

1 に答える 1

1

finfoこれを行う唯一の方法です。クライアントから送信された情報に頼ることはできません。クライアント側から偽造するのは非常に簡単です。

で機能しない理由はありません。ファイルパスとして$_FILES渡すだけです。これは引き続き有効なファイルパスであり、データにアクセスする$_FILES['files']['tmp_name']ために呼び出す必要はありません。move_uploaded_file()ファイルを一時的な場所に残しておくと、スクリプトを何もしていない場合、スクリプトが終了したときにファイルが破棄されるという利点もあります。

于 2012-06-06T15:30:39.463 に答える