2012-01-04 3 views
0

FTP를 통해 대용량 파일을 보내는 PHP 스크립트가 있습니다. 파일을 보낸 후 "성공"브라우저에 쓰려고합니다. 또한 파일이 전송되었음을 기록하기 위해 데이터베이스에 쿼리를 보내려고합니다. 그러나, 내가 가지고있는 코드는 ftp_put 이후에 실행되지 않습니다.ftp_put()을 사용한 후 에코 "성공"

if (ftp_put($conn_id, $upload_filename, $filename, FTP_BINARY)) 
{ 
    echo "File Sent"; 
    echo $upload_filename." - ".date("d/m/Y H:i:s")." - ".filesize($filename)." bytes<br>" ; 
} 
else 
{ 
    echo "Problem while Uploading $filename\n <br/>". $upload_filename ; 
} 

ftp_put 경우 false 에코 작품이다. 그러나, ftp_put이 성공하면 어떤 코드도 실행되지 않습니다.

내가 보내고 파일 크기는 7,305킬로바이트

답변

0

여기에 문제가 파일을 업로드하는 동안 스크립트가 시간 초과 있다는 것을 가능성이있다. 위의 코드 전에이 줄을 추가하십시오 :

set_time_limit(0); 
+0

감사합니다. 나는 그것을 시도하고 여전히 작동하지 않았다. – user1130993

0

것은이 업로드 될 때까지 ftp_put() 블록 추가 조치가 완료된 것입니다. 다음과 같이 ftp_nb_put() (차단 없음)을 시도하십시오.

$upload = ftp_nb_put($conn_id, $upload_filename, $filename, FTP_BINARY); 

if($upload == FTP_MOREDATA) 
{ 
    echo 'Uploading ' . $upload_filename . ' - ' . date("d/m/Y H:i:s") . ' - ' . filesize($filename) . ' bytes<br />'; 
    while($upload == FTP_MOREDATA) 
    { 
     echo '.'; //Output a . to page or do whatever 
     $upload = ftp_nb_continue($conn_id); 
    } 
} 

//Note: While in the while above, it will either end in FTP_FINISHED or FTP_FAILED 
if($upload == FTP_FAILED) 
{ 
    echo "Problem while Uploading $filename\n <br />". $upload_filename; 
}