2011-01-01 4 views
0

데이터베이스에 저장해야하는 zip 파일을 받고 있습니다. 그러나 그것은 불완전하게 구원받는 것 같습니다. 이 기능에zct 파일은 doctrine :: createquery-> update()로 불완전한 파일을 저장합니다.

: 각각

내가 크기 (바이트)에 업로드 된 파일이
public function executeUploadFile(sfWebRequest $request){ 

    if (!$_FILES['file']['error']){ 
     $fn = $_FILES['file']['tmp_name']; 
     $fh = fopen($fn,'r+'); 
     $fc = fread($fh, filesize($fn)); 
     mail('[email protected]','test 3',$fn.'-'.filesize($fn).'-'.strlen($fc)); 
     fclose($fh); 
     move_uploaded_file($_FILES['file']['tmp_name'],dirname(__FILE__).'/'.$_FILES['file']['name']); 
     $q = Doctrine_Query::create() 
      ->update('PrimhdLog') 
      ->set('results', "'".mysql_escape_string($fc)."'") 
      ->where("files_expected like '%".$_FILES['file']['name']."%'"); 
     $sql = $q->getSqlQuery(); 
     print $sql; 
     $uprows = $q->execute(); 
    }else{ 
     mail('[email protected]','uploadFile has error on file',print_r($_FILES,1)); 
    } 

    return sfView::NONE; 
} 

4028,1658,2777. 이메일 로그와 "ls -la"는이 크기를 확인합니다.

그러나 SELECT char_length (results), length (results), primhd_log. * FROM primhd_log 여기서, 1은 각각 크기 3900, 1607, 2692를 표시합니다.

이 문제를 식별하는 방법을 알려주세요.

버전 심포니 1.4.6입니다

스키마 :

PrimhdLog : actAs : Timestampable : 만든 : 이름 : 생성 유형 : 타임 스탬프 열 : ID : {유형 : 정수 ( created_by : {type : integer (4)} 세부 정보 : {type : clob (16000000), notnull : true} 제출 됨 : {type : true, unique : true, true : : 소인} submitted_by {유형 : 정수 (4)} 결과 {유형 : CLOB (16,000,000)} 시작 {유형 : 소인} 단부 {유형 : files_expected 소인} {유형 : CLOB (16,000,000) } output_filename : {유형 : 문자열 (100)} 관계 : 작성자 : {클래스 : 사람, 지역 : CREATED_BY이 (가) 작성한, foreignAlias ​​: CreatorPRIMHDLogList} 올린 사람 : {클래스 : 사람, 지역 : submitted_by, foreignAlias ​​: SubmitterPRIMHDLogList}}

답변

0

귀하의 스키마가 무엇입니까? 정보를 저장하는 데이터 유형은 무엇입니까? '본문'? '얼룩'?

zip 파일에는 mysql_escape_string도 캐치하지 않는 많은 특수 문자가 포함되어 있습니다. ^^ 또는^M이 미쳐 있으면 그냥 건너 뛰어 크기 차이를 설명합니다.

별로 도움이되지만 아이디어 아이디어에 대한

+0

감사합니다, 나는 그것을 저장하기 전에, 단지 XML 파일을 포함하도록 보장 된 파일을 압축 해제 만 할 수 있습니다. – jdog

관련 문제