Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]upload na email
Forum PHP.pl > Forum > Przedszkole
Pcbecaw
cześć, do tej pory słyszałem o uploadzie plików poprzez stronę na serwer, ale czy można zrobić takowy upload na email? chciałbym, aby użytkownicy mieli możliwość wysyłania plików tekstowych (wordowych itd.), które z zasady mało ważą i mogłyby zostać kierowane na pocztę e-mail. Da się coś takiego zrobić?
CTRL
Jako załącznik na pewno się da, google wiedzą.
http://lmgtfy.com/?q=Wysylanie+zalacznikow+php+mail
Możesz też wysłać plik na swój serwer lub do bazy, a w mailu podać krótki link: domena.pl/file/41
Pcbecaw
znalazłem coś takiego:
  1. <?php
  2. //sprawdzenie czy za³¹cznik pochodzi z formularza
  3. if ($_POST["wyslij"]==1)
  4. {
  5. srand((double)microtime()*1000000);
  6. $znacznik = md5(uniqid(rand()));
  7.  
  8. // dane o odbiorcy, nadawcy
  9. $odbiorca="mail@gmail.com";
  10. $tytul="Mail z zalaczniekiem";
  11. $nadawca = "Mail ze strony";
  12. $nadawca_mail="mail-ze-strony@domena.pl";
  13.  
  14. // treœÌ listu
  15. $tresclistu = "tutaj piszesz ca³¹ treœÌ maila";
  16.  
  17. // definicja nag³ówków
  18. $naglowki = "From: $nadawca <$nadawca_mail>\n";
  19. $naglowki .= "MIME-Version: 1.0\n";
  20. $naglowki .= "Content-Type: multipart/mixed;\n";
  21. $naglowki .= "\tboundary=\"___$znacznik==\"";
  22.  
  23. // nag³ówki listu
  24. $tresc="--___$znacznik==\n";
  25. $tresc .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
  26. $tresc .="Content-Transfer-Encoding: 8bit\n";
  27. $tresc .="\n$tresclistu\n";
  28.  
  29. // nag³ówki i obs³uga za³¹cznika
  30. $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
  31. $plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
  32. $plik_wielkosc = $_FILES["plik1"]["size"];
  33.  
  34. if (is_uploaded_file($plik_nazwa_tmp))
  35. {
  36. $tresc .="--___$znacznik==\n";
  37. $tresc .="Content-Type: image/gif\n";
  38. $tresc .="Content-Disposition: attachment;\n";
  39. $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
  40. $tresc .="Content-Transfer-Encoding: base64\n\n";
  41. $f = fopen($plik_nazwa_tmp,"rb");
  42. $dane = fread($f,filesize($plik_nazwa_tmp));
  43. fclose($f);
  44. $tresc .= chunk_split(base64_encode($dane));
  45. $tresc .="--___$znacznik==--\n";
  46. }
  47.  
  48. // wysÂłanie listu
  49. if (mail($odbiorca,$tytul,$tresc,$naglowki))
  50. {
  51. print "E-mail z za³¹cznikiem zosta³ wys³any poprawnie.";
  52. }
  53. else
  54. {
  55. print "E-mail NIE zostaÂł wysÂłany poprawnie.
  56. <br>Prosimy o <a href=\"java script:history.back();\">powrĂłt</a> i wysÂłanie e-maila ponownie.";
  57. }
  58. }
  59. ?>

i zastanawiam się nad kilkoma zagadnieniami:
1 - dlaczego wysyłane załączniki przez to wchodzą mi do spamu na gmail i co zrobić, aby nie wchodziły?
2 - czy przez ten formularz można wysłać każdy rodzaj pliku? (wiem, że gmail blokuje takie rozszerzenia jak np. .bat, ale teoretycznie?)
3 - jaką wagę maksymalną można wysłać poprzez ten fomularz? taką, jaką dopuszcza gmail? z 10mb o ile pamietam
wNogachSpisz
Tym skryptem powyzej możęsz potrzeczeć sobie tyłek.
Do takich rzeczy służą bibliteki PEAR.
irmidjusz
hahaha krótko i treściwie hahaha biggrin.gif
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.