PHP Curl在下载之前检查文件是否存在

aan*_*est 4 php curl

我正在编写一个PHP程序,从后端下载pdf并保存到本地驱动器.现在如何在下载之前检查文件是否存在?

目前我正在使用curl(请参阅下面的代码)进行检查和下载,但它仍然会下载大小为1KB的文件.

$url = "http://wedsite/test.pdf";
$path = "C:\\test.pdf;"
downloadAndSave($url,$path);

function downloadAndSave($urlS,$pathS)
    {
        $fp = fopen($pathS, 'w');

        $ch = curl_init($urlS);

        curl_setopt($ch, CURLOPT_FILE, $fp);
        $data = curl_exec($ch);

        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        echo $httpCode;
        //If 404 is returned, then file is not found.
        if(strcmp($httpCode,"404") == 1)
        {
            echo $httpCode;
            echo $urlS; 
        }

        fclose($fp);

    }
Run Code Online (Sandbox Code Playgroud)

我想在下载之前检查文件是否存在.知道怎么做吗?

Exp*_*lls 8

您可以使用单独的curl HEAD请求执行此操作:

curl_setopt($ch, CURLOPT_NOBODY, true);
$data = curl_exec($ch);

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
Run Code Online (Sandbox Code Playgroud)

当您真正想要下载时,可以使用set NOBODYto false.