Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Pobiera plik z kodem strony, a nie wygenerowaną zawartością
Grandalf00
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

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


Witajcie! Mam kod, który z sukcesem generuje plik CSV - jest zapisywany na serwerze.

  1. if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['list']) && $_POST['list'] != "") {
  2. $select = $_POST['list'];
  3. $sql = "SELECT date FROM plan WHERE city = '$select' OR street LIKE '%$select,%'";
  4. $res = $dbc->query($sql);
  5. $row = $res->fetch_assoc();
  6. $date_list = explode(",",$row['date']);
  7. $header = "Subject,Start date,End date";
  8. $subject = "Wywóz";
  9. $fp = fopen("file.csv", "a+");
  10. fputs($fp,"$header\r\n");
  11. foreach ($date_list as $date) {
  12. $line = "$subject,$date.2017,$date.2017";
  13. fputs($fp,"$line\r\n");
  14. }
  15. fclose($fp);
  16. echo "<button>Pobierz</button>";


Jednak chciałbym aby po wygenerowaniu pliku użytkownik mógł go zapisać u siebie. Dlatego dodałem dalej
  1. header("Content-Type: text/csv");
  2. header('Content-Disposition: attachment; filename="file.csv"');}


Lecz dostaję plik z kodem html strony, a nie plik CSV, który zostaje wygenerowany.

Ten post edytował Grandalf00 21.12.2016, 10:35:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po pierwsze niggdzie w tym kodzie nie zwracasz uzytkownikowi tego pliku. Ustawienie naglowkow to tylko i wylacznie ustawienie naglowkow.
Po drugie jak cos zamierzasz slac do uzytkownika to nie mozesz nic slac innego w tym samym czasie, a ty procz pliku (ktorego defacto nie slesz - patrz punkt 1) slesz tez strone html
Go to the top of the page
+Quote Post
Grandalf00
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

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


Ok, czyli wiadomo coś więcej czemu nie działa. Więc jak należy zrobić to poprawnie? W Google wszelkie wątki dotyczące pobierania plików przez użytkowników opisują jedynie właśnie nagłówki.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
dotyczące pobierania plików przez użytkowników opisują jedynie właśnie nagłówki.
Nie prawda. Podane tam tez jest jeszcze ze musisz zwrocic zawartosc pliku. No sama w magiczny sposob sie nie zwroci. Tak wiec nie sciemniaj (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Grandalf00
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

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


Nie ma potrzeby ściemniać. Jedna ze stron, na której szukałem informacji: http://forum.pasja-informatyki.pl/17313/ma...obieranie-pliku

Tutaj natomiast na końcu jest 'echo' http://funkcje.net/view/2/8/2230/index.html tylko, że w moim przypadku zawartość pliku dalej jest pomiędzy kodem html. Podpowiesz coś więcej czy tak będziemy sobie pisać?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wlasnie, echo, readfile, cokolwiek co zwroci do przegladarki tresc pliku.

Cytat
że w moim przypadku zawartość pliku dalej jest pomiędzy kodem html.

To czas najwyzszy w koncu zaczac pisac porzadnie. Najpierw logika aplikacji, potem wyswietlanie a nie jeden wielki mix. Wowczas twoje problemy znikna.
Go to the top of the page
+Quote Post
Grandalf00
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 23.01.2016

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


Zrobiłem zmiany, zapisywany plik ma taką zawartość jak potrzeba lecz mam jeszcze jedną sprawę. Nie we wszystkich lokalizacjach można plik zapisać przy pomocy Chrome. Podaje komunikat o niewystarczających uprawnieniach gdy próbuje zapisać plik na pulpicie, podczas gdy firefox, edge i IE zapisują bez problemu.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 15:45