Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]phpmailer + skalowanie załacznika
fcppl
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

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


witam,

Stworzyłem za pomocą phpmailer prosty formularz z możliwością dodania załącznika. Wszystko mi działa OK.

Chce dorobić żeby podczas dołączenia zdjęcia został podczas wysyłania automatycznie skalowany do ustalonego rozmiaru (pomniejszony) - zdjęcia pomniejszone będą wysłane na mój e-mail.
Teraz mam problem bo ludzi wysyłają b.duże zdjęcia i nie dość ze rozmiar jest duży to jeszcze zajmują po kilka MB.

Szukałem na forum jednak potrzebuję pomocy.

moj kod:

  1. <?php
  2.  
  3. if (isset($_POST["submit"])) {
  4.  
  5. $plik_tmp = $_FILES['plik']['tmp_name'];
  6. $plik = $_FILES['plik']['name'];
  7.  
  8. $name = strip_tags($_POST['name']);
  9. $address = strip_tags($_POST['address']);
  10. $email = strip_tags($_POST['email']);
  11. $message = strip_tags($_POST['message']);
  12.  
  13. require("phpmailer/class.phpmailer.php");
  14. $mail = new PHPMailer();
  15. $mail->PluginDir = "phpmailer/";
  16. $mail->From = 'xxx';
  17. $mail->FromName = 'test';
  18. $mail->Host = "smtp.wp.pl";
  19. $mail->Mailer = "smtp.wp.pl";
  20. $mail->Username = "xxx";
  21. $mail->Password = "xxx";
  22. $mail->SMTPAuth = true;
  23. $mail->SetLanguage("pl", "phpmailer/language/");
  24. $mail->Subject = 'test;
  25. $mail->CharSet = 'utf-8';
  26. $mail->IsHTML(true);
  27. $mail->Body = 'wiadomość z załącznikiem';
  28. $mail->AddAddress("test@test.pl");
  29. $mail->AddAttachment($plik_tmp, $plik);
  30. $mail->MsgHTML("
  31. <p>Adres: <strong>$name</strong> </p>
  32. <p>Osoba: <strong>$address</strong> </p>
  33. <p>Adres e-mail: <strong>$email</strong> </p>
  34. <p>tresc: <strong>$message</strong> </p>
  35. ");
  36. if (!$mail->Send())
  37. {
  38. echo '<p>Wystąpił błąd! Nie wysłano reklamacji.</p>';
  39. } else {
  40. $mail->ClearAddresses();
  41. $mail->ClearAttachments();
  42. echo '<p>Wiadomość została wysłana poprawnie.</p>';
  43. }
  44. }
  45. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fcppl
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 11.04.2010

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


dzięki za wskazówki.

Działa mi już prawie wszystko OK, ale nie potrafię zrobić żeby skalować jednocześnie dwa pliki. Kombinuje, ale efektów brak.

Taki mam kod do skalowania jednego pliku:

  1. <?php
  2.  
  3. if (isset($_POST["submit"])) {
  4. $plik_tmp = $_FILES['plik']['tmp_name'];
  5. $plik_nazwa = $_FILES['plik']['name'];
  6.  
  7.  
  8. $save_file = $plik_nazwa;
  9. if(is_uploaded_file($plik_tmp)) {
  10. move_uploaded_file($plik_tmp, ''.$save_file.'');
  11. $img = imagecreatefromjpeg(''.$save_file.'');
  12. $width = imagesx($img);
  13. $height = imagesy($img);
  14. $width_mini = 1024;
  15. $height_mini = 768;
  16. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  17. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  18. imagejpeg($img_mini, $save_file."", 80);
  19. imagedestroy($img);
  20. imagedestroy($img_mini);
  21. }
  22.  
  23.  
  24. $name = strip_tags($_POST['name']);
  25. $address = strip_tags($_POST['address']);
  26. $email = strip_tags($_POST['email']);
  27. $message = strip_tags($_POST['message']);
  28.  
  29.  
  30. require("phpmailer/class.phpmailer.php");
  31. $mail = new PHPMailer();
  32. $mail->PluginDir = "phpmailer/";
  33. $mail->From = 'xxx';
  34. $mail->FromName = 'test';
  35. $mail->Host = "xxx";
  36. $mail->Mailer = "xxx";
  37. $mail->Username = "xxx";
  38. $mail->Password = "xxx";
  39. $mail->SMTPAuth = true;
  40. $mail->SetLanguage("pl", "phpmailer/language/");
  41. $mail->Subject = 'xxx';
  42. $mail->CharSet = 'utf-8';
  43. $mail->IsHTML(true);
  44. $mail->Body = 'xxx';
  45. $mail->AddAddress("xxx");
  46. $mail->AddAttachment($save_file);
  47.  
  48. $mail->MsgHTML("
  49. <p>Adres: <strong>$name</strong> </p>
  50. <p>Osoba: <strong>$address</strong> </p>
  51. <p>Adres e-mail: <strong>$email</strong> </p>
  52. <p>Opis: <strong>$message</strong> </p>
  53. ");
  54. if (!$mail->Send())
  55. {
  56. echo '<p>Wystąpił błąd! Nie wysłano reklamacji.</p>';
  57. } else {
  58. $mail->ClearAddresses();
  59. $mail->ClearAttachments();
  60. echo '<p>Wiadomosc została wysłana poprawnie.</p>';
  61. }
  62.  
  63. }
  64. ?>


Zrobiłem w form drugie pole "<input type="file" name="plik1" />" próbowałem dodać do php, ale w załączniku wysyła tylko pierwszy jpg. Problem mam z przerobieniem skryptu od skalowania, bo bez tego działają mi normalnie dwa lub więcej załączników.
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 00:44