我正在编写一个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)
我想在下载之前检查文件是否存在.知道怎么做吗?
您可以使用单独的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.