Я пробовал использовать свой darnest, чтобы не задавать этот вопрос (я просмотрел и попробовал массу примеров уже на форуме), что в основном работает, что заставляет меня поверить, что я чего-то не хватает. У меня есть ссылка для экспорта моей таблицы в загружаемый CSV-файл. Когда я нажимаю ссылку, код выгружает таблицу в формате csv, но вместо загрузки в качестве вложения он просто отображает содержимое таблицы в html.
–
<?php include('bikes.php'); //db connection settings if ($_GET['action'] == 'download') { header('Content-Disposition: attachment; filename="downloaded.csv"'); $query = "SELECT * FROM bikes"; $export = mysql_query ($query ) or die ( "Sql error : " . mysql_error( ) ); $fields = mysql_num_fields ( $export ); for ( $i = 0; $i < $fields; $i++ ) { $header .= mysql_field_name( $export , $i ) . "\t"; } while( $row = mysql_fetch_row( $export ) ) { $line = ''; foreach( $row as $value ) { if ( ( !isset( $value ) ) || ( $value == "" ) ) { $value = "\t"; } else { $value = str_replace( '"' , '""' , $value ); $value = '"' . $value . '"' . "\t"; } $line .= $value; } $data .= trim( $line ) . "\n"; } $data = str_replace( "\r" , "" , $data ); if ( $data == "" ) { $data = "\n(0) Records Found!\n"; } print "$header\n$data"; } exit(); php?>
–
Мои результаты
A, B, C, D, A, B, C, D – я не знаю, почему, когда я нажимаю ссылку (download.php? Action = download), которая не предлагает мне сохранить файл на моем жестком диске , а не просто отображать информацию на странице.
Любая помощь будет очень оценена!
Используйте перед отправкой вывода:
header('Content-Disposition: attachment; filename="downloaded.csv"');
См. Создание файла CSV для пользователя в PHP. Для получения более подробной информации.
Попробуйте это, работает для меня:
header("Content-Type: text/csv"); header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); header("Content-Transfer-Encoding: binary\n"); header('Content-Disposition: attachment; filename="downloaded.csv"');