从没有文件名的URL获取文件名和扩展名

时间:2017-05-06 08:42:10

标签: php guzzle guzzle6

我正在考虑下载一个文件,以便稍后再将其上传到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;
        }
    }

0 个答案:

没有答案