Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Jak zrobić skrypt downloadu, który zapisuje obraz na dysku ?
Adam-240
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 16.11.2008

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


Witam, mógłby mi ktoś powiedzieć jak zrobić taki skrypt, który będzie wyświetlał obrazek pobrany z folderu i pod nim będzie przycisk, a po kliknięciu w niego będzie pobierał obraz na dysk ?

Najlepiej jakby ktoś mi pokazał skrypt i wytłumaczył mniej więcej jak to działa abym wiedział jak mam jego używać i na przyszłość, gdy opanuję trochę PHP bym umiał go edytować i dostosować do własnych potrzeb.

Przykład:


Z góry dzięki, nie wstawiam tego do giełdy ponieważ nie chodzi mi tylko o skrypt ale także o wytłumaczenia jak on działa.

Ten post edytował Adam-240 16.11.2008, 21:39:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
-gox-
post
Post #2





Goście







php header force-download -- frazka do google jak malowanie.
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


edit: to jest błędny kod, prawidłowy na dole tego postu.
  1. <?php
  2. $katalog = dir('/sciezka/do/obrazkow');
  3.  
  4. $pliki = array();
  5.  
  6.         while ($plik = $katalog->read ()) {
  7.             if (($plik != '.') AND ($plik != '..') AND !(is_dir($katalog.'/'.$plik))) {
  8.                 $pliki[] = $plik;
  9.             }
  10.         } 
  11.  
  12. natcasesort($pliki);
  13.  
  14. $lista_obrazkow = '
      ';
  15.  
  16. foreach ($pliki as $konkretny) {
  17.  
  18. $lista_obrazkow .= '<li><a href="'.$sciezka.'/'.$konkretny.'"><img src="'.$sciezka.'/'.$konkretny.'" alt="" /><br />zapisz</a></li>';
  19.  
  20. }
  21.  
  22. $lista_plikow .= '
  23. ';
  •  
  • echo $lista_plikow;
  • ?>



  • definiujesz katalog z którego php ma czytać.

    1. inicjujesz tablicę która będzie zawierać nazwy obrazków
    2. dopóki pętla czyta z katalogu (pomijając wszystkie katalogi które tam są, zawsze conajmniej dwa), to dopisuje do tablicy kolejne pozycje.
    3. sortujesz tablicę
    4. tworzysz zmienną do której będziesz dopisywał kolejne pozycje.
    5. dla każdego elementu tablicy (czyli dla każdego pliku w katalogu, pętla foreach) tworzysz element listy html, dopisujesz go do swojej zmiennej.
    6. dopisujesz końcówkę do swojej zmiennej
    7. wyświetlasz zmienną na stronie

    pisane z pamięci, mogłem się pomylić. poza tym nie jestem pewien, czy !is_dir nie załatwia też sprawy tych kropek

    edit:
    dodałem apostrofy w dir


    edit2:

    powyższy kod jest całkowicie błędny, podaję prawidłowy:

    1. <?php
    2. $sciezka = '/sciezka/do/obrazkow';
    3.  
    4. $katalog = dir($sciezka);
    5.  
    6. $pliki = array();
    7.  
    8. while ($plik = $katalog->read() ) {
    9.  
    10. if (($plik != '.') AND ($plik !- '..')) {
    11.  
    12. $pliki[] = $plik;
    13.  
    14. }
    15.  
    16. }
    17.  
    18. natcasesort($pliki);
    19.  
    20. $lista_obrazkow = '<ul>';
    21.  
    22. foreach ($pliki as $konkretny) {
    23.  
    24. $lista_obrazkow .= '<li><a href="'.$sciezka.'/'.$konkretny.'"><img src="'.$sciezka.'/'.$konkretny.'" alt="" /><br />zapisz</a></li>';
    25.  
    26. $lista_obrazkow .= '</ul>';
    27.  
    28. echo $lista_obrazkow;
    29. ?>


    i do tego zastosuj to co kolega wyżej napisał.
    przepraszam za błędy

    Ten post edytował hiszpanespaniol 16.11.2008, 23:46:59
    Go to the top of the page
    +Quote Post
    Adam-240
    post
    Post #4





    Grupa: Zarejestrowani
    Postów: 14
    Pomógł: 0
    Dołączył: 16.11.2008

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


    A da się tak zrobić:


    Kod
    <?php
    $sciezka = '/sciezka/do/obrazkow';

    $katalog = dir($sciezka);

    $pliki = array();

    $licznik = 21;

    while ($plik = $katalog->read($licznik>0) ) {

    if (($plik != '.') AND ($plik !- '..')) {

    $pliki[] = $plik;

    $licznik = $licznik - 1;

    }

    }

    natcasesort($pliki);

    $lista_obrazkow = '<ul>';

    foreach ($pliki as $konkretny) {

    $lista_obrazkow .= '<li><a href="'.$sciezka.'/'.$konkretny.'"><img src="'.$sciezka.'/'.$konkretny.'" alt="" /><br />zapisz</a></li>';

    $lista_obrazkow .= '</ul>';

    echo $lista_obrazkow;
    ?>


    Bo chodzi mi o to aby nie wyświetlała w nieskończoność ta pętla tylko było 20 pozycji.

    czy to co dodałem jest poprawne i będzie dobrze działało ?
    Go to the top of the page
    +Quote Post
    pbierni
    post
    Post #5





    Grupa: Zarejestrowani
    Postów: 9
    Pomógł: 1
    Dołączył: 30.06.2008

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


    Witam
    Proponowałbym pobrać wszystkie pliki a dopiero potem ograniczyć ich wyświetlanie. Masz w tym momencie wieksze pole manewru z plikami np jakieś sortowanie itd. A co do zapisu plików na dysku to http://forum.php.pl/index.php?showtopic=106241.

    Pozdrawiam
    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: 19.09.2025 - 03:26