Экспортированный файл сохраните на сервере. Должен быть загружен в систему без сохранения на сервере

У меня есть скрипт 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 и многие другие). У меня нет особых знаний об этом, почему и где мне нужно это добавить.

Может кто-нибудь мне помочь?

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);

?>

Спасибо

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]