2013-06-29 3 views
5

Вот мой PHP-код для создания файла .CSV на основе некоторых данных SQL. Он работает по назначению, единственная проблема заключается в том, что просто создает файл .CSV на сервере и не запрашивает у пользователя его загрузку.Как я могу попросить пользователя загрузить созданный PHP файл .CSV и как я должен его удалить?

<?php 
    require_once "../assets/repository/mysql.php"; 

    $query = "SELECT * FROM datashep_AMS.COMPLETE_APPLICATIONS"; 
    $results = mysql_query($query); 

    $first = true; 

    $out = fopen('export.csv', 'w'); 

    while($row = mysql_fetch_assoc($results)){ 
     if($first){ 
      $titles = array(); 
      foreach($row as $key=>$val){ 
       $titles[] = $key; 
      } 
      fputcsv($out, $titles); 
      $first = false; 
     } 
     fputcsv($out, $row); 
    } 

    fclose($out); 
?> 

Так что мой вопрос: как мне заставить пользователя скачать файл сразу после его создания?

И как только они загрузили (или отклонили), как я должен обрабатывать удаление .CSV-файла с моего сервера?

ответ

12

Не нужно ничего хранить на сервере (и, следовательно, нет необходимости удалять ...). Просто напишите результаты обратно в браузер и установить заголовки соответственно:

<?php 
require_once "../assets/repository/mysql.php"; 

$query = "SELECT * FROM datashep_AMS.COMPLETE_APPLICATIONS"; 
$results = mysql_query($query); 

$first = true; 

header('Content-Type: text/csv'); 
header('Content-Disposition: attachment;filename="export.csv"'); 
header('Cache-Control: max-age=0'); 

$out = fopen('php://output', 'w'); 

while($row = mysql_fetch_assoc($results)){ 
    if($first){ 
     $titles = array(); 
     foreach($row as $key=>$val){ 
      $titles[] = $key; 
     } 
     fputcsv($out, $titles); 
     $first = false; 
    } 
    fputcsv($out, $row); 
} 

fclose($out); 
?> 
+0

фиксируется ваш тип содержимого, CSV не превосходят –

+0

Thx @Dagon О.П. хотел «Excel», но ты прав –

+0

я не см. слово excel в его вопросе. любой, как csv является общим, и может быть открыт многими приложениями, файлы excel являются подходящим форматом –

Смежные вопросы