ファイルをダウンロードする際に、ファイルを悪意のあるかどうかを確認するためにAPIに再度アップロードすることを検討しています。ファイル名なしのURLからファイル名と拡張子を取得する
最初は簡単でしたが、ファイル名+拡張子がURLに含まれていても、必ずしもそうではないことがわかりました。私には正確なファイル名と拡張子がわかりません。私は一時ファイルに、私はそれにファイル拡張子を割り当てることができないだろう。
何らかの理由でこのファイル名を取得する可能性はありますか?または、少なくとも私の一時ファイルに追加することができます。
私は現在私が現在持っているものです(私は現在、私はtmpfilenameを使用していますが、 )ファイルの拡張子をチェックする方法を知っている:
public function download($url, $tmpfilename, $method)
{
$client = new Client([
// Base URI is used with relative requests
'base_uri' => $url,
'sink' => $tmpfilename,
]);
try {
$response = $client->request($method);
if (is_bool($response)) {
return $response;
} else {
return $response->getBody()->getContents();
}
} catch (\GuzzleHttp\Exception\ClientException $e) {
return false;
} catch (\GuzzleHttp\Exception\RequestException $e) {
return false;
}
}
ファイル名の拡張子を容易に変更することができ、ファイルの内容と一致する必要はありません。 – Reeno
それは問題ありません。問題は本当にそれに関連していませんでした。私はちょうどどれがそれにファイル名を含んでいないURLからダウンロードされているファイルとファイル名にアクセスするのかと思っていました。 – Marius