我正在查看下载文件,稍后再次将其上传到API以检查文件是否是恶意文件。从文件名中获取文件名和扩展名没有文件名
起初很容易,如果文件名+扩展名在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