Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] wyświetlenie wielu plików i możliwość ich zaznaczenia mail, jak zaznaczyć wybrane pliki i wysłać je jako załączniki?
alogator
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


Witam (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
Czy prosiłbym o pomoc ew. odwołanie do jakiejś literatury.
Mianowicie chciałbym wyświetlić zawartość folderu - czyli pliki w nim się znajdujące i mieć możliwość zaznaczenia tych ktore mi się podobają aby potem wysłać je jako załączniki w mailu.
jest w ogóle taka możliwość?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
bigZbig
post
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


  1. <?php
  2. class DirList extends RecursiveDirectoryIterator
  3. {
  4.    private $_dirArray;
  5.  
  6.    public function __construct($path)
  7.    {
  8.        parent::__construct($path);
  9.        $this->_dirArray = new ArrayObject();
  10.        foreach($this as $_item)
  11.        {
  12.  
  13.            $this->_dirArray->append($_item);
  14.        }
  15.    }
  16.  
  17.    public function getIterator()
  18.    {
  19.        return $this->_dirArray->getIterator();
  20.    }
  21. }
  22. $_path = realpath('./'); /* ścieżka do katalogu z plikami */
  23. $_iterator = new DirList($_path);
  24. ?>
  25. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  26.  
  27. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
  28.  
  29. <head>
  30.  
  31.    <title></title>
  32.  
  33.    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  34.  
  35. </head>
  36.  
  37. <body>
  38.  
  39.    <select name="files" multiple="multiple">
  40.    <?php
  41.        foreach ($_iterator->getIterator() as $_item) {
  42.            if (false === $_item->isFile()) {
  43.                continue;
  44.            }
  45.            echo '<option value="'.$_item->getPathname().'">'.$_item->getFilename().'</option>';
  46.        }
  47.    ?>
  48.    </select>
  49.  
  50. </body>
  51.  
  52. </html>
Go to the top of the page
+Quote Post
alogator
post
Post #3





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


WOW (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
Dziękuje ogromnie bigZbig (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
Podpowiedz mi jeszcze proszę jak teraz zaznaczone pliki przekazać do następnego okna żeby je "widział"
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie krzycz...
Wrzuć tego selecta w formularz i po wysłaniu formularza bedziesz widzial zaznaczone pliki.
Go to the top of the page
+Quote Post
alogator
post
Post #5





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


czyli coś koło tego (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) :


  1. <form action="blebleble.php" method="post" enctype="multipart/form-data">
  2. Send these files:<br />
  3. <input name="formularz" type="file" /><br />
  4. <input type="submit" value="Send files" />
  5. </form>


z tym że tutaj gdzieś musze podpiąć wartości z tego poprzedniego wyniku
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No to wrzuć tam tego selecta...
Go to the top of the page
+Quote Post
alogator
post
Post #7





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


ale w które miejsce? - sorki ale trochę nie bardzo sie znam
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To jak sie nie znasz to sie poducz bo jak narazie to widzę, że chcesz się wyręczyć innymi. Pomiedzy tagi form.

Ten post edytował wookieb 20.02.2009, 19:08:17
Go to the top of the page
+Quote Post
alogator
post
Post #9





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


zrobiłem tak


formularz

  1. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
  2.  
  3. <head>
  4.  
  5.   <title></title>
  6.  
  7.   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  8.  
  9. </head>
  10.  
  11. <body>
  12. <form action="2.php" method="post">
  13.   <select name="files" multiple="multiple">
  14.   <?php
  15.       foreach ($_iterator->getIterator() as $_item) {
  16.           if (false === $_item->isFile()) {
  17.               continue;
  18.           }
  19.           echo '<option value="'.$_item->getPathname().'">'.$_item->getFilename().'</option>';
  20.       }
  21.   ?>
  22.   </select>
  23.  
  24.  
  25.  
  26.  
  27.  <input type="submit" value=" wyślij dane ">
  28. </form>
  29.  
  30.  
  31. </body>


i potem 2.php

  1. <?
  2.  
  3. $dzial = $_POST['files'];
  4. echo"$dzial";
  5.  
  6.  
  7. ?>


i wyrzuca mi tylko jedne z zaznaczonych plików (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował alogator 20.02.2009, 19:27:41
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




nie: name="files"
a: name="files[]"
multiselect musi miec nazwe tablicowa.

nie:$dzial = $_POST['files'];
echo"$dzial";

a: print_r($_POST['files'])

tablicy echem nie wyswietlisz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
alogator
post
Post #11





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


człowiek całe życie się uczy : )
już wyświetlił nazwy tych zaznaczonych w postaci

  1. Array ( [0] => /home/alogator/domains/alogator.eu/public_html/aaa/2.php [1] => /home/alogator/domains/alogator.eu/public_html/aaa/Behind.Enemy.Lines-Colombia[2009]DvDrip-aXX.txt )


dałoby się wstawić między nie <br> ?
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




$_POST['files'] to tablica.
Do iteracji po tablicy sluzy:
http://pl.php.net/manual/pl/control-structures.foreach.php
i rob co chcesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
alogator
post
Post #13





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


dokładnie tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?
  2. //print_r($_POST['files']);
  3.  
  4. $tab3 = $_POST['files'];
  5. ?>
  6.  
  7. <?php
  8. foreach ($tab3 as $klucz => $wartosc)
  9. {
  10. echo $wartosc.'<br> ';
  11. }
  12. ?>


i drukuje tak jak powinno : )

Proszę jeszcze o podpowiedź żeby teraz te ścieżki do zaznaczonych plików przekształcić na załączniki do maila.
znaloazłem coś takiego i sprawdziłem działa ale przy jednym załączniku robionym prosto z forma.
Pa jak już zrobię selecta i to wiele zaznaczę to lipa.

  1. <?php
  2. if ($_POST["ok"])
  3. {
  4. srand((double)microtime()*10000000);
  5. $znacznik = md5(uniqid(rand()));
  6.  
  7. ////////// USTAWIENIA //////////
  8. $odbiorca = 'alogator@gmail.com'; // Adres e-mail adresata
  9. $tytul = 'pliczki'; // Temat listu
  10. $message = 'ok'; // Komunikat
  11. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
  12. //////////////////////////////
  13.  
  14. // Nagłówki
  15. $naglowki = "From: \n";
  16. $naglowki .= "MIME-Version: 1.0\n";
  17. $naglowki .= "Content-Type: multipart/mixed;\n";
  18. $naglowki .= "\tboundary=\"___$znacznik==\"";
  19.  
  20. // Treść listu
  21. $tresclistu .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
  22. $tresclistu .="Content-Transfer-Encoding: 8bit\n";
  23. $tresclistu .="\n";
  24.  
  25. // Załącznik
  26. $nazwa_tymczasowa = $_FILES["plik1"]["tmp_name"];
  27. $nazwa_pliku = $_FILES["plik1"]["name"];
  28.  
  29. if (is_uploaded_file($nazwa_tymczasowa))
  30. {
  31. $tresclistu .="--___$znacznik==\n";
  32. $tresclistu .="Content-Type: image/jpg\n";
  33. $tresclistu .="Content-Disposition: attachment;\n";
  34. $tresclistu .=" filename=\"$nazwa_pliku\"\n";
  35. $tresclistu .="Content-Transfer-Encoding: base64\n\n";
  36. $f = fopen($nazwa_tymczasowa, "rb");
  37. $dane = fread($f,filesize($nazwa_tymczasowa));
  38. fclose($f);
  39. $tresclistu .= chunk_split(base64_encode($dane));
  40. }
  41. // wysłanie listu
  42. if (mail($odbiorca,$tytul,$tresclistu,$naglowki))
  43. {
  44. print "".$message."";
  45. }
  46. else
  47. {
  48. print "".$error."";
  49. }
  50. }
  51. ?>


btw to z postu usera dave666

Ten post edytował alogator 20.02.2009, 20:23:23
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: 3.10.2025 - 23:48