2017-04-28 36 views
0

내가 배열을 데 내가 CSV 파일로 다운로드하려고 내 배열을 파일로 배열을 변환하려면이배열 5.1

Array(
[0] => Array 
    (
     [Date] => 2017-01-02 
     [Name] => Asia consumer MC Alpha bmk - risk 
     [Level] => .333000 
    ) 

[1] => Array 
    (
     [Date] => 2017-01-03 
     [Name] => Asia consumer MC Alpha bmk - risk 
     [Level] => .333000 
    )) 

내 코드처럼 보이는

입니다
public function DownloadFile($filetype,$Array_data,$content){ 

    $LevelArray = array('Date','Name','Level'); 

    $selected_array = $LevelArray; 
    if($filetype =='csv'){ 

      $Filename ='Level.csv'; 
      header('Content-Type: text/csv; charset=utf-8');     
      header('Content-Disposition: attachment; 
      filename='.$Filename.''); 
      // create a file pointer connected to the output stream 
      $output = fopen('php://output', 'w'); 
      fputcsv($output, $selected_array); 
      foreach ($Array_data as $row){ 
       fputcsv($output, $row); 
      } 
      fclose($output);     
     }} 

응답에서 나는 출력을 받고 있지만 헤더는 CSV 파일을 가져 오는 것을 가리키고 있지만 응답은 파일 유형으로 변환되지 않습니다.

Date,Name,Level 
2017-01-02,"Asia consumer MC Alpha bmk - risk",.333000 
2017-01-03,"Asia consumer MC Alpha bmk - risk",.333000 
2017-01-04,"Asia consumer MC Alpha bmk - risk",.333000 

내가의 속삭임 너무 응답 laravel 방법 및 많은 다른 사람을 사용하는 시도는

응답 헤더이

Connection:close 
Content-Disposition:attachment; filename=Benchmark-Level.csv 
Content-type:text/csv;charset=UTF-8 
Host:localhost:8000 
X-Powered-By:PHP/5.6.25 
+0

답장을 어떻게 보내시겠습니까? –

+0

나는 단지 헤더를 설정하고 codeigniter에서 똑같은 것을 열지 만 여기서는 작동하지 않는 파일에 결과를 넣는다. – Rajat

답변

0
처럼 파일을 다운로드 할 브라우저를 강제로 자사의 헤더 수없는, 작동하는 것 같다

두 번째 헤더가 두 줄로 나뉘어져 있습니까? 줄 바꿈이없는 한 줄이어야합니다.

header('Content-Disposition: attachment; filename='.$Filename.''); 

편집

이 코드는 나를 위해 노력하고 있습니다. 강제로 다운로드 할 헤더를 하나 더 추가했지만 추가 헤더가 있거나없는 Chrome에서 작동합니다. 다른 브라우저에서 실행 해보시겠습니까? 내 생각에 다운로드를 막기 위해 브라우저 설정이 입니다.

<?php 

$selected_array = array('header:col1','header:col2', 'header:col3'); 

$Array_data = array(
    array('row1:col1','row1:col2', 'row1:col3'), 
    array('row2:col1','row2:col2', 'row2:col3'), 
    array('row3:col1','row3:col2', 'row3:col3'), 
); 

$Filename ='Level.csv'; 
header('Content-Type: text/csv; charset=utf-8'); 
Header('Content-Type: application/force-download'); 
header('Content-Disposition: attachment; filename='.$Filename.''); 
// create a file pointer connected to the output stream 
$output = fopen('php://output', 'w'); 
fputcsv($output, $selected_array); 
foreach ($Array_data as $row){ 
    fputcsv($output, $row); 
} 
fclose($output); 
?> 
+0

한 줄로 만 – Rajat