Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][PHP] jak Ajaxem po przesłaniu danych zapisać plik na dysk użytkownika?
jhoihkjhkhnkh
post 23.08.2017, 11:21:25
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 14.07.2017

Ostrzeżenie: (0%)
-----


Teraz robię taką głupawkę, że po naciśnięciu przycisku najpierw idzie Ajax gdzie na podstawie parametrów tworzę plik na serwerze, a potem idzie normalny request gdzie w odpowiedzi zapisuję plik na dysku usera. Wolałbym to robić tylko ajaxem.

teraz jest tak:

  1.  
  2.  
  3. if (//wchodzi ajax){
  4. //wygeneruj plik i zapisz nazwę w sesji
  5. }
  6.  
  7. if(//wchodzi zwykły request){
  8. //odbierz z sesji nazwę pliku i ...
  9. header('Content-Description: File Transfer');
  10. header("Content-type: text/csv; charset=utf-8");
  11. header('Content-Disposition: attachment; filename=' . basename($exportedFile));
  12. header('Content-Transfer-Encoding: binary');
  13. header('Expires: 0');
  14. header('Cache-Control: must-revalidate');
  15. header('Pragma: public');
  16. header('Content-Length: ' . filesize($exportedFile));
  17. flush();
  18. readfile($exportedFile);
  19. unlink($exportedFile);
  20. }
  21.  



i wcześniej ajax

  1. <a href="?action=exp" id="export">
  2. </a>
  3. <script type="text/javascript">
  4. $("#export").click(function () {
  5. $.ajax({
  6. url: "../admin/shop.php",
  7. data: {
  8. action: 'exp',
  9. tableParams: tableParams
  10. }
  11. })
  12. });



Problem polega na tym, że zdarza się że szybszy jest request "zwykły" a potem idzie ajax. Mogłoby tak zostać ale musiałbym jakoś zmusić by najpierw szedł ajax a po nim zwykły request. Muszę to robić ajaxem bo dane na podstawie którym mam wygenerować plik są widoczne tylko przez javascript

Ten post edytował jhoihkjhkhnkh 23.08.2017, 11:57:18
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:24