PHP를 통해 파일을 다운로드하는 데 문제가 있습니다.PHP를 통해 파일 다운로드
재미있는 점은 문제를 추적 할 수 없다는 것입니다. 이 코드는 일부 웹 사이트에서는 좋지만 다른 사이트에서는 좋지 않습니다. 웹 사이트에서 백업 파일을 다운로드하는 것은 PHP의 루프입니다 (요청 전에 잠자기 지연이 있음).
왜 문제를 추적 할 수 없습니까? 수동으로 코드를 실행하면 작동합니다 (파일 다운로드). CRON에 의해 실행될 때 파일을 다운로드하는 경우가 있습니다. 파일을 다운로드하지 않는 경우도 있습니다 (빈 행 2 개만 다운로드).
다운로드가 curl로되어 있습니다 (fsockopen 및 fread로 다른 코드로 시도했습니다).
아무도 내가 이것을 해결할 수있는 아이디어가 있습니까?
머리글은 올바른 옵션을 설정하여 머리글을 사용하여 제거됩니다.
function fetch_url($url) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_TIMEOUT, 20);
if ($cookiejar != '') {
curl_setopt($c, CURLOPT_COOKIEJAR, $cookiejar);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookiejar);
}
curl_setopt($c, CURLOPT_HEADER , false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST , false);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($c, CURLOPT_FOLLOWLOCATION , true);
curl_setopt($c, CURLOPT_AUTOREFERER , true);
curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
$con = curl_exec($c);
curl_close($c);
return $con;
}
echo fetch_url('http://www.example.com/zip.zip');
확인. 고마워요. – BetterMan21
보안 질문 : 해당 백업이 포함 된 웹 서버에서 합법적 인 사용자로 액세스 권한을 부여 할 수 있습니까? 아니면 Joe Public이 이러한 백업 사본을 다운로드해도 문제가되지 않습니까? – halfer
curl_error를 사용하여 txt 파일 등에 로그 한 다음 작동하지 않는 이유를 추적 할 수 있어야합니다 (2GB를 초과하는 너무 큰 파일, 잘못된 헤더, 부패 또는 불완전한 데이터, gzip 등) 인코딩 또는 타임 아웃) ... 모든 컬 요청을 기록하고 보안을 설정합니다. –