이것은 문자 그대로 몇 시간 동안 나를 괴롭 히고 있습니다.파일을 출력 할 때 PHP 컬링이 데이터를 다운로드하지 못하지만 표준 출력으로 인쇄 할 때 괜찮습니다.
PHP cURL이 데이터를 파일에 다운로드하지 않는 이유를 알 수없는 것처럼 보입니다. (CURLOPT_FILE이 로컬 파일로 설정되었습니다.) 데이터가 없습니다. 필자는 주기적으로 대상 파일의 파일 크기를 확인하며 항상 0입니다. 배경을 제공하기 위해 테스트 용으로 90kb jpeg 파일을 다운로드합니다.
내 로컬 컴퓨터 (XP)에서 작동하지만 현재 작업하고있는 웹 사이트 (Windows Server 2003)에서는 작동하지 않습니다.
시나리오를 더욱 이상하게 만든 몇 가지 테스트를 수행했습니다.
I 장애인 CURLOPT_FILE
표준 출력으로 컬에 의해 반환 된 데이터를 인쇄하고, 바이너리 데이터는 인쇄.서버가 액세스 제어를 구현하기 전에 차단 된 웹 사이트를 경험 한 후 Internet Explorer에서 파일에 액세스하려했는데 볼 수있었습니다.
차단 된 다운로드가 발생하기 전에 Internet Explorer에서 파일을 다운로드하려고 시도했는데 다운로드되었습니다.
파일은 fopen ('', 'w')에 의해 만들어 지지만 크기는 0으로 유지됩니다.이 성공적인 파일 생성에도 불구하고 PHP에 파일 시스템 쓰기 권한에 문제가있는 것 같아요. 관리자가 아닌 사용자도 마찬가지입니다. 아직 다운로드가 없습니다.
아무에게도 이런 일이 발생 했습니까?
모든 포인터가 제공됩니다. 나는 정말로 붙어있다.
감사합니다.
$connection = curl_init($src);
// If these are not set, curl_exec outputs data.
// If these are set, curl_exec does not send any data to the file
// pointed to by $file_handler. $file_handler is not null
// because it is opened as write (non-existing file is created)
curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($connection, CURLOPT_FILE, $file_handler);
PS를 :
다음은 컬 옵션은 내가 설정의 내가 명령 줄이 아닌 브라우저를 사용하여 테스트를하고 있어요.
나는 아직도 이것을 이해할 수 없다.그 동안 데이터를 직접 파일에 저장했습니다. RETURNTRANSFER가 true로 설정되어 있기 때문에 바이트는 컬에서 리턴되었습니다. 이들은 fwrite를 사용하여 파일에 기록되었습니다. 나는 이것을 피하고 cURL이 버퍼링을 수행하도록하고 싶었지만 (있는 경우). –