我正在查看下載文件,稍後再次將其上傳到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