2017-12-21 5 views
0

API에서 PHP ZipArchive를 실행 중이고 응답시 본문에 adding: uploads/AUFIC/ps.csv (stored 0%) 같은 내용이 출력됩니다.이 출력이 인쇄되지 않도록하려면 어떻게해야합니까?PHP ZipArchive, 출력/에코/로그 비활성화

private function downloadPackage($schoolPrefix,$schoolZipPassword,$csvFilePath) { 
    $ret = array('status' => false, "message" => "", "response" => array()); 
    try { 
     $s3 = Aws\S3\S3Client::factory(array('region' => getenv('omitted_AWS_REGION_2'))); 
     $s3->registerStreamWrapper(); 
     $bucket = 'autoregistration.omitted.com'; 
     // production needs to be read from env var 
     $prefix = 'production/PackageFiles/'; 
     $objects = $s3->getIterator('ListObjects', array(
      'Bucket' => $bucket, 
      'Prefix' => $prefix 
     )); 
     $zip = new ZipArchive; 
     $zipfilename = $schoolPrefix.'_omitted'.date('YmdHis').'.zip'; 
     $zipfilepath = 'uploads/'.$zipfilename; 
     $zip->open($zipfilepath, ZipArchive::CREATE); 
     foreach ($objects as $object) { 
      if(basename($object['Key']) != 'PackageFiles') 
      { 
       $contents = file_get_contents("s3://{$bucket}/{$object['Key']}"); 
       $objectname = (basename($object['Key']) == 'SchoolPrefix.ps1') ? $schoolPrefix.'.ps1' : basename($object['Key']); 
       $zip->addFromString($objectname, $contents); 
      } 
     } 
     // pass the school prefix in params 
     $school_objects = $s3->getIterator('ListObjects', array(
      'Bucket' => $bucket, 
      'Prefix' => 'production/'.$schoolPrefix 
     )); 
     foreach ($school_objects as $school_object) { 
      if(basename($school_object['Key']) == 'ps.csv') 
      { 
       $contents = file_get_contents("s3://{$bucket}/{$school_object['Key']}"); 
       $zip->addFromString(basename($school_object['Key']), $contents); 
       $foundcsv = true; 
      } 
     } 
     if(!$foundcsv) throw new Exception ('Can not find the csv file.', 400); 

     $zip->close(); 
     $output = system("zip -P '".$schoolZipPassword."' ". $zipfilepath . " ".$csvFilePath); 
     $key = 'production/'.$schoolPrefix.'/'.$zipfilename; 
     $s3result = $s3->putObject(array('Bucket'=>$bucket,'Key' => $key, 'SourceFile' => $zipfilepath)); 
     //$ret['s3_url'] = $s3result['ObjectURL']; 
     $ret['s3_url'] = $s3->getObjectUrl($bucket, $key, '+2 days'); 
     $ret['status'] = true; 
     unlink($zipfilepath); 
    } catch (Exception $e) { 
     $ret['status'] = false; 
     $ret['message'] = $e->getMessage(); 
    } 
    return $ret; 
} 
+0

아마도 다른 사람들이 C를 추적 도움이 될 일으키는 코드를 공유 문제의 사용 – RamRaider

+0

@RamRaider 문제가있는 함수를 추가했는데 충분하지 않은 경우 알려주십시오. –

답변

0

내가 이것을 변경하여 시작하는 것입니다 :

다음 그 zip 파일의 URL을 반환하는 파일을 참아 및 S3에 업로드 주변

이 ZipArchive이 들어있는 기능, 그것은 일부 파일을 정렬 이에
return $ret; 

:

return;