2016-06-04 5 views
1

데이터베이스에서 내 보낸 레코드를 CSV 파일로 가져 오는 PHP 스크립트가 있습니다. 내보내기 버튼을 클릭하면 서버 (현재 위치)에 CSV 파일이 생성됩니다. 모든 데이터가 CSV 파일에 제대로 표시되고 있지만 서버에 저장해서는 안되며 시스템에 다운로드해야합니다. 이 질문은 중복 될 수도 있지만 답변을 찾지 못했습니다.내 보낸 파일은 서버에 저장됩니다. 서버에 저장하지 않고 시스템에 다운로드해야합니다.

CSV 파일의 내 보낸 데이터의 코드입니다.

$monthData = mysql_query($query, $conn); 
$columns_total = mysql_num_fields($monthData); 

$output = ""; 

for ($i = 2; $i < $columns_total; $i++) { 
    $heading = mysql_field_name($monthData,$i); 
    $output .= '"'.$heading.'",'; 
} 
$output .="\n"; 

while ($row = mysql_fetch_array($monthData)) { 
    for ($i = 2; $i < $columns_total; $i++) { 
     $output .='"'.$row["$i"].'",'; 
    } 
    $output .="\n"; 
} 
$fileName = $month.'Data.csv'; 
$csvfile = fopen($fileName, "w") or die("Unable to open file!"); 
fwrite($csvfile, $output); 

fclose($csvfile); 

내 연구 또는 지식에 따라, 나는 몇 가지 헤더를 추가 할 필요가 있다고 생각합니다 (즉, 파일 이름, 이는 파일 크기 및 기타 여러 지정). 나는 그것에 대해 많은 지식을 가지고 있지 않다. 왜 그것을 추가해야 하는가?

아무도 도와 줄 수 있습니까?

+0

변경'=하면 fopen csvfile $ ($ 파일 이름, "w")'$ csvfile의 =하면 fopen에':'('PHP // 출력', "w") .... 그 일을하기 전에 [헤더] (http://php.net/manual/en/function.header.php)를 보내라. 내가 게시 한 링크의 예제는 어떻게 pdf 파일의 헤더를 보내는 지 보여준다. 그러나 당신은 쉽게 콘텐츠 유형을'text/csv'로 변경할 수 있어야합니다. –

+0

@ MarkBaker - 답장을 보내 주셔서 감사합니다. 이제 파일이 서버에서도 다운로드되지 않습니다. 그것은 경고 메시지 - 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더 .............. 헤더를 올바르게 사용하는 실수가있을 수 있습니다. 구문을 게시 할 수 있습니까? 그것은 급해. –

+0

'php : // output'에 무엇인가 보내기 전에 헤더를 보내야합니다 ... 파일을 열기 전에 헤더가있는 특정 메시지를받는다면 코드의 다른 것이 브라우저로 출력됩니다 , 그리고 오류 메시지는 정확하게 알려 주어야합니다 –

답변

1

여기에 간단한 질문에 대한 답변이 나와 있습니다.

<?php 
header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=testdata.csv'); 

// create a file pointer connected to the output stream 
$output = fopen('php://output', 'w'); 

// fetch the data 
$row = array(array('row1val','row1val','row1val'),array('row2val','row2val','row2val')); 

// loop over the rows, outputting them 
foreach($row as $fields): 
fputcsv($output, $fields); 
endforeach; 

fclose($output); 

?> 

감사

+0

내 보낸 파일을 어떻게 서버에 저장할 수 있습니까? – karadayi

관련 문제