2010-07-06 1 views
1

일부 사람들은 이미 물어보고 있지만 원격 파일 (각각의 파일 크기는 200KB 미만)을 다운로드 할 때가 있습니다. 그러나 일부 파일은 완전하게 저장되지 않습니다. 일부 파일을 저장할 수 없거나 일부 파일은 저장되지만 100 %가 저장되지는 ​​않습니다. 이미지에 회색 그림자가 나타납니다. 최악의 상황은 언제나 다른 오류 출력입니다. (인터넷 문제입니까?)PHP를 사용하여 로컬 서버에서 원격 이미지 파일을 저장하지만 완전히 성공적이지 않은 경우

파일을 저장하려면 다음 방법을 시도해보십시오.

  1. file_get_contents
  2. 컬/GD
  3. 사본

모두 작동 할 수 있지만 내가 전체 파일을 저장할 수있는 완벽한 방법을 찾을 수 없습니다.

다음은 오류 메시지입니다.

  1. 스트림을 열지 못했습니다 : HTTP 요청 실패! 라인 "복사"60초 초과 의
  2. 최대 실행시에 HTTP/1.0 408 요청 타임 아웃

내 PHP 프로그램 (나는 시간을 증가).

set_time_limit(60); 

$imageArray=array(image array............); 

for ($k=0;$k<count($imageArray);$k++){ 

echo '<img src="'.$imageArray[$k].'"><br/>'; 

$isok=copy($imageArray[$k] , dirname(__FILE__).'/photo/item_'.($k+1).'.jpg'); 

if(isok==true){ 
    echo' success!'; 
}else{ 
    echo ' Fail'; 
} 

답변

1

아마도 인터넷 문제 일 수 있습니다. 시도 할 때 브라우저에서 제대로로드됩니까? 그럴 경우 컴퓨터에서 코드를 실행하고 이것이 도움이되는지 확인할 수 있습니다.

그러나 가장 가능성있는 이유는 다운로드하려는 원격 사이트입니다. 이는 시간 간격마다 연결을 차단할 수 있습니다. 이미지 사이에 잠자는 시간을 가져보십시오 (예 : 5-6 초).

이미지의 작은 배치를 한 번에 한 번에 하나씩 다운로드하여보십시오.

+0

실제로이 프로그램에는 10 개의 이미지 소스 만 넣습니다. 하지만 어쨌든 내 프로그램 버그가 아니에요 ... 인터넷 속도를 빠르게 만들 수 있기를 바랍니다. – user315396

+0

연결 속도를 높이는 가장 좋은 방법은 제공자와상의하거나 변경하는 것입니다. 또는 원격 http wrapper를 허용하는 무료 공유 어딘가에서 할 수 있습니다. – bisko

0

귀하의 copy()에서 .jpg로 대상 출력에 하드 코드 된 것으로 나타났습니다. .png 또는 .gif를 업로드하는 것처럼 항상 .jpg를 업로드하고 있으며 .jpg로 인해 문제가 발생할 수 있습니다. 정직한 생각.

+0

중요하지 않습니다. 브라우저는 이러한 사례를 잘 처리합니다 (최소 FF, Chrome 이상). img src = "http://example.com/thisshouldbeajpegimagewithoutext"와 같은 페이지에는 확장명이없는 img를 넣을 수도 있습니다. 그러면 잘 보일 것입니다. – bisko

+0

감사합니다 ... 모든 파일은 jpg 확장자입니다. 내 집에서 운영되는 동일한 프로그램이 매우 잘 작동 할 수 있습니다. 내 사무실에서 인터넷 연결 문제가 있다고 생각합니다. – user315396

관련 문제