Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z downloadem plików tekstowych
TomaySOFT
post 18.06.2002, 10:59:24
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 18.06.2002
Skąd: poznań

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


Witam!

Jestem nowym członkiem tego szanownego forum, ale nie jestem nowicjuszem w php. Spotkałem się jednak z pewnym problemem, który wydaje się (przy mojej obecnej wiedzy) nie do przejścia.

Mam serwer WWW (linux) z Apachem, php i bazami MySQL - można rzec - rozwiązanie wzorcowe.
Strony na nim udostępnione służą do odczytywania bazy zawierającej wpisy z lokalizacjami na dyskach plików, które użytkownicy mogą sobie ściągać. Problem polega na tym, że pliki te są plikami tekstowymi, co powoduje, że link z adresem URL pliku (odczytanym z bazy, a będącym po prostu linkiem do FTP-a) prowadzi do wyświetlenia zawartości pliku w oknie przeglądarki. Próbowałem już skorzystać ze znalezionego na Necie mechanizmu wymuszania zapisu na dysk (
Kod
header("Content-Type: application/save");
) , co nawet doprowadzało do wlaściwego zachowania przeglądarki, lecz nie pozwalało na fizyczne odczytanie pliku. ("Internet Explorer nie mógł otworzyć miejsca w podanej lokalizacji"). Co ciekawe problemu nie było, gdy klientem był Netscape działający na Linuksie. Ale niestety musi być to IE-friendly - nie mój wybór.
Zastosować musiałem mechanizm polegający na wypisaniu na stronach typu "download", że pliki zapisujemy klikając prawym klawiszem i "Zapisz jako...". Dla prostych ludzi, którzy z tego mają korzystać - przeczytać nie znaczy zrozumieć. Musi to się odbyć poprzez normalnie kliknięcie lewym przyciskiem myszy.

Zatem pomóżcie kochani koledzy programiści - podpowiedzcie jak to zrobić.

Założenia:
skrypt nazywa się download.php i to on z bazy odczytuje nazwę pliku otrzymując jako parametr jedynie ID pliku bazie. Skrypt jest otwierany po kliknięciu na link do pliku w nowym oknie, które zamienia się w okno typu "Otworzyć/Zapisać" i zapisać można plik pod nazwą taką, jak na serwerze FTP (choć oczywiście z możliwością zmiany nazwy i lokalizacji).
Po przesłaniu pliku okno znika.

Wiem - można byłoby zastosować gotowe biblioteki plików, lecz zakres przeróbek byłby zbyt duży, aby nie powodowały u użytkowników frustracji z powodu ich własnej niewiedzy. Wspomniany działanie uzyskać można także oczywiście poprzez użycie tylko jednego headera (
Kod
header("location: ftp://cos_cos/nazwa_pliku.txt");
), ale działa to poprawnie tylko z plikami typu ZIP lub wykonywalnymi. Tekst się wyświetla!


Sorry, że przynudzam, ale bardzo mi zależy na tym, aby móc wreszcie oddać "system" do użytkowania w trybie produkcyjnym - następne zadania w pracy czekają, a czas goni...



Od razu dzięki za wszelkie sugestie.

Pozdrawiam

[/b]


--------------------
------------------------------
TomaySOFT



Chcesz rozbawić Pana Boga?
Zaplanuj sobie coś!
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: 14.08.2025 - 05:25