데이터베이스에서 내 보낸 레코드를 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);
내 연구 또는 지식에 따라, 나는 몇 가지 헤더를 추가 할 필요가 있다고 생각합니다 (즉, 파일 이름, 이는 파일 크기 및 기타 여러 지정). 나는 그것에 대해 많은 지식을 가지고 있지 않다. 왜 그것을 추가해야 하는가?
아무도 도와 줄 수 있습니까?
변경'=하면 fopen csvfile $ ($ 파일 이름, "w")'$ csvfile의 =하면 fopen에':'('PHP // 출력', "w") .... 그 일을하기 전에 [헤더] (http://php.net/manual/en/function.header.php)를 보내라. 내가 게시 한 링크의 예제는 어떻게 pdf 파일의 헤더를 보내는 지 보여준다. 그러나 당신은 쉽게 콘텐츠 유형을'text/csv'로 변경할 수 있어야합니다. –
@ MarkBaker - 답장을 보내 주셔서 감사합니다. 이제 파일이 서버에서도 다운로드되지 않습니다. 그것은 경고 메시지 - 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더 .............. 헤더를 올바르게 사용하는 실수가있을 수 있습니다. 구문을 게시 할 수 있습니까? 그것은 급해. –
'php : // output'에 무엇인가 보내기 전에 헤더를 보내야합니다 ... 파일을 열기 전에 헤더가있는 특정 메시지를받는다면 코드의 다른 것이 브라우저로 출력됩니다 , 그리고 오류 메시지는 정확하게 알려 주어야합니다 –