Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] dodanie pliku do formularza email
Forum PHP.pl > Forum > Przedszkole
manitou
Szukam i szukam na forum nic konkretnego nie znalazłem .


Mam formularz i chcę mieć w nim pole :
  1. <input name="zdjecia" type="file" >


Jak zrobić by załadować zdjęcie do formularza , i wysłać go na e-mail ?

Chcę ominąć ładowanie zdjęcia na serwer , chcę by prosto szedł na maila .


czekam na pomoc ... winksmiley.jpg
kelis
Tak na szybko znalazłem klasę obsługującą maile w php, ma także opcje wysylania plikow w zalacznikach.

->phpMailer

Mozesz sie pobawic smile.gif.
manitou
Cytat(kelis @ 14.12.2006, 20:07:29 ) *


Dzięki , może coś z tego wyciągnę .

ale po wstępnym rzutem oka małe szanse ...

Mam formularz a raczej ankietę dość obszerną i fajnie by było jak by ktoś mi podpowiedział jak rozbudować "swoje" .
lopik
Nie wiem czy działa, google znalazło winksmiley.jpg
http://php.webhelp.pl/index.php?id=106&...php&ac=read
manitou
Cytat(lopik @ 15.12.2006, 01:13:51 ) *
Nie wiem czy działa, google znalazło winksmiley.jpg
http://php.webhelp.pl/index.php?id=106&...php&ac=read




smile.gif już testuję . Musi działać .DZIĘKI guitar.gif

No i angrysmiley.gif niedziała .

Maile niedochodzą , może ktoś poprawi jeżeli jest co w tym poprawiać :

  1. <form name="form1" method="post" action="sendmail.php" enctype="multipart/form-data">
  2. <table width="300" border="0" cellspacing="0" cellpadding="0">
  3. <tr><td>subject</td><td><input type="text" name="subject"></td></tr>
  4. <tr><td>replayto</td><td><input type="text" name="replayto"></td></tr>
  5. <tr><td>from</td><td><input type="text" name="from"></td></tr>
  6. <tr><td>sendto</td><td><input type="text" name="sendto"></td></tr>
  7. <tr><td>message</td><td><textarea name="message" wrap="VIRTUAL"></textarea></td></tr>
  8. <tr><td>filename</td><td><input type="file" name="filename"></td></tr>
  9. <tr><td colspan="2"><input type="submit" name="Submit" value="Submit"></td></tr>
  10. </form>


sendmail.php
  1. <?php
  2. $boundary = "-->===_54654747_===<---->>4255==_";
  3.  
  4. // Zmiennych $subject i $sendto nie musimy w żaden sposób przerabiać.
  5.  
  6. // Teraz trzeba sformatować nagłówek.
  7.  
  8. $head = "From: $fromn";
  9. $head = $head . "Reply-To: $replyton";
  10. $head = $head . "X-Mailer: phpn";
  11. $head = $head . "X-Sender: $fromn";
  12. $head = $head . "MIME-version: 1.0n";
  13. $head = $head . "Content-type: multipart/mixed; ";
  14. $head = $head . "boundary="$boundary"n";
  15. $head = $head . "Content-transfer-encoding: 7BITn";
  16. $head = $head . "X-attachments: $filename_name;nn";
  17.  
  18. // Jeszcze tylko treść wiadomości i możemy słać pocztę 
  19.  
  20. $mesg = "--" . $boundary . "n"; //pamiętamy dwa minusy na początku
  21. $mesg = $mesg . "Content-Type: text/plain; charset="us-ascii"nn";
  22. $mesg = $mesg . $message . "n";
  23. $mesg = $mesg . "--" . $boundary . "n"; //pamiętamy dwa minusy na początku
  24.  $mesg = $mesg . "Content-type: " . $filename_type . "; name="$filename_name";n";
  25. $mesg = $mesg . "Content-Transfer-Encoding: base64n";
  26. $mesg = $mesg . "Content-disposition: attachment; filename= "$filename_name"nn";
  27. $mesg = $mesg . fileopenanddecode($filename) . "n";  //czytamy plik i go kodujemy
  28. $mesg = $mesg . "--" . $boundary . "-- n"; //pamiętamy dwa minusy na początku i na końcu
  29.  
  30.  
  31.  
  32. //funkcja odczytująca plik i kodująca go d o formatu base64 zgodnie z RFC 2045
  33. function fileopenanddecode($file) {
  34. if (is_readable($file)) {
  35.  $fd = fopen($file, "r");
  36.  $plik = fread($fd, filesize($file));
  37.  $encoded = chunk_split(base64_encode($plik));
  38.  fclose($fd);
  39. }
  40. return $encoded;
  41. }
  42.  
  43. // i to wszystko teraz tylko 
  44. mail($sendto, $subject, $mesg, $head); 
  45. //i poszło
  46. ?>




pozdr
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.