szukam (najlepiej w PHP) skryptu który “ukryje” ścieżkę bezpośrednią do pliku w dziale download, po prostu nie chcę by ktoś mi “podkradł” link i “cieszył się moim transferem”. Najlepiej aby link był generowany iż wejście na tą stronę jeszcze raz wygeneruje nowy "wirtualny link"do pliku.
sęk w tym że heaer musi zostać zapisany na początku strony…, a co za tym idzie dalszy jej fragment nie jest ładowany…, co prawda działa to świetnie ale mam tam także kod odpowiadający za zliczanie pobrań pliku etc.
Złączono Posta: 14.07.2007 (Sob) 22:27
pozostaje coś takiego…, no ale tutaj w kodzie strony będzie link do pliku
print("\n");
chyba że użyć jakiegoś kodowania
Złączono Posta: 14.07.2007 (Sob) 22:30
a dało by się jakoś by po header była generowana strona dalej?
Bzdury opowiadasz. Po header jak najbardziej kod jest dalej wykonywany. Popatrz: gdyby nie był, to po pierwszym headerze wykonywanie by się zatrzymało, czyli drugi, trzeci header i echo by nie wykonały się, w wykonują. Także dalszy kod, nie ważne czy to licznik czy cokolwiek innego jak najbardziej się wykona. Nawet header(‘Location’) nie powoduje zatrzymania wykonywania się kodu.
header nie musi być na początku Przed i po header mogą być wykonywane operacje, z wyjątkiem wysyłaniem danych przed headerem do przeglądarki np. w postaci echo().
Przepraszam, nie zauważyłem że odpowiedziałeś, w każdym bądź razie nawet jak rozwiązałeś problem postaram się odpowiedzieć dlaczego nie chodziło:
Otóż readfile() od razu wypisuje zawartośc pliku, nie można jej przypisać do zmiennej (nie daje return tylko echo). Jeśli chodzi o download to tu powinieneś zakończyć wysyłanie do przeglądarki czegokolwiek. Dlaczego? A no dlatego, że wysłałeś plik, potem żadnej treści już nie możesz wysłać bo poinformowałeś przeglądarkę, że będziesz wysyłał plik, więc nawet jak zrobisz echo (tak jak zrobiłeś) przeglądarka uzna to za dalszą część pliku, a nie stronę do wyświetlenia. De facto napis “ble ble” znajdzie się na końcu ściągniętego pliku.
Kod jak najbardziej potem się wykona, nie może jedynie nic iść do przeglądarki.
I kilka uwag na koniec. filename= nie musisz w cudzysłów ujmować.
Jeśli nie dołączysz nagłówka długości, przeglądarka nie będzie wiedziała jaki rozmiar ma plik i nie pokaże paska postępu (tzn ile % pozostało do końca ściągania) i przewidywanego czasu, tylko po prostu informację że pobiera. Rozmiar pliku możesz pobrać za pomocą funkcji filesize() http://pl.php.net/manual/pl/function.filesize.php
yyy… tylko że kilka dni wcześniej już to napisałem … po co powtarzać :?:
@EDIT DOWN:
autor tematu zrozumiał, jeśli Ty nie, to bardzo mi przykro i… współczuję.