У меня есть скрипт PHP для экспорта записи из базы данных в файл CSV. Когда я нажимаю кнопку экспорта, он создает файл 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);
Что касается моих исследований или знаний, я думаю, что необходимо добавить какой-нибудь заголовок (который указывает fileName, fileSize и многие другие). У меня нет особых знаний об этом, почему и где мне нужно это добавить.
Может кто-нибудь мне помочь?
Вот вам простой ответ на ваш вопрос.
<?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);
?>
Спасибо
Других решений пока нет …