2014-11-04 2 views
0

저는 PHPExcel로 몇 가지 Excel 파일을 만들고 스크립트를 실행하는 서버에 저장합니다. 이 부분은 잘 작동합니다.FTP가 특정 지연 및/또는 크기를 가진 파일을 손상시킵니다.

그런 다음 ftp_put을 사용하여 클라이언트의 ftp 서버로 보내려고하지만 파일이 서버에 도착합니다.

Filezilla를 사용하여 FTP 서버에서 파일을 다시 다운로드 한 후 열면 파일 내용에 문제가 있다는 메시지가 표시되며 원하는 경우 최대한 많이 복구하려고 시도 할 수 있습니다. 그래서. 그렇게하는 것은 도움이되지 않습니다.

Excel 파일이 100-120k 미만인 경우 손상되지 않은 상태로 전송되며 손상된 것보다 큽니다.

스크립트

$conn_id = ftp_connect($hostFTP); 
if($login_result = ftp_login($conn_id, $userFTP, $passwordFTP)) 
{ 
    ftp_pasv($conn_id, true); 
    if(ftp_put($conn_id, $remote_path.$output_filename, $localPath.$output_filename, FTP_BINARY)) 
    { 
     $log = new Logs("listes.log", "Uploaded $output_filename"); 
    } 
    else 
    { 
     $log = new Logs("listes.log", "FAIL Uploading $output_filename"); 
    } 
    ftp_close($conn_id); 
} 

내가 뭔가 잘못하고 있습니까 FTP를 통해 보내? 내가 무엇을 할 수 있을지?

편집 :

내가

이미지 (JPG)을 시도 100-120k 마크 주위에 생각하는 라인 (231)에서 시작하여 몇 가지 차이점을 보여 텍스트 파일을 비교

하고 또한 손상되면 (이미지의 윗부분은 괜찮지 만 한 점에서는 부패하고 이미지의 나머지 부분은 거의 단색으로되어 있습니다.) 그래서 문제는 탁월하지 않습니다.

서버 (opensuse)가 ftp를 제한 할 수 있습니까? 만약 그렇다면 어떻게?

+0

120k 이상의 파일 중 하나를 수동으로 FTP 서버에 업로드하면 어떻게됩니까? 대신'FTP_ASCII'을 시도해 보셨습니까? 수동으로 파일을 업로드 할 때 ASCII 및 BINARY 모드를 사용하여 수동으로 시도하십시오. – MonkeyZeus

+0

filezilla를 사용하여 수동으로 업로드하는 경우 대답은 파일이 손상되지 않았 음을 의미합니다. 스크립트를 통해 수동으로 의미하는 경우 아스키 또는 바이너리로 손상됩니다. –

+0

예, 내 질문에 완전히 대답했습니다. 'ftp_put();'을 사용하여 Excel에서 생성 된 엑셀 파일을 업로드 할 수 있습니까? 또는 120k보다 큰 txt 파일을'ftp_put'을 통해 보내려고 시도 할 수도 있습니다. 그리고 FTP 서버에서 파일을 다시 다운로드 할 때 텍스트의 오류가 나타날 수 있습니다. – MonkeyZeus

답변

0

글쎄, 문제가 아니라 코드를 발견했습니다. 그것의 인터넷 서비스. 우리는 어제 인터넷 공급자를 변경했으며 ftp는 이제 정상적으로 작동합니다. ftp 연결이 이전 공급자와 중단 된 것 같습니다.

관련 문제