Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mail z załącznikiem
1maciek
post
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 12.10.2004

Ostrzeżenie: (10%)
X----


Witam,
Mam pytanie, tak jak w temacie, czy jest możliwe wysłanie maila z załącznikiem bez wcześniejszego uploadowania pliku-załącznika na serwer?
Sytuacja jest taka: jest strona z formularzem kontaktowym gdzie można dołączyć plik-załącznik, dane z formularza są przetwarzane i wysyłany jest mail. Aby dodać załącznik uploadowałem plik na serwer, ale pojawił się problem, gdy załącznik miał więcej niż 2 MB serwer wyrzucał błąd:Fatal error: Allowed memory size of 10485760 bytes exhausted (tried to allocate 3266122 bytes) in ***/www/phpmailer/class.smtp.php on line 307
, dodam że wysyłałem maila poprzez bibliotekę phpmailer.

kod skryptu wysyłającego wiadomość

  1. <?php
  2. $form = true;
  3. if(isset($_POST['imienazwisko'])) {
  4.  
  5. $imienazwisko = strip_tags(stripslashes(trim($_POST['imienazwisko'])));
  6. $firma = strip_tags(stripslashes(trim($_POST['firma'])));
  7. $email = strip_tags(stripslashes(trim($_POST['email'])));
  8.  
  9. if(!empty($_FILES['plik']['name'])) {
  10. $pname = $_FILES['plik']['name'];
  11. $pnametmp = $_FILES['plik']['tmp_name'];
  12.  
  13. while(file_exists(TMP_DIR.$pname)) {
  14. $count = rand(1, 99);
  15. $part = explode('.', $pname);
  16. $part[0] .= $count;
  17. $pname = $art[0].'.'.$part[1];
  18.  }
  19. move_uploaded_file($pnametmp, 'tmp/'.$pname); 
  20.  }
  21.  
  22. $tresc = '<b>Imię i nazwisko:</b> $imienazwisko<br>';
  23. $tresc .= '<b>Firma:</b>'.$firma.'<br>';
  24. $tresc .= '<b>E-mail:</b>'.$email.'<br>';
  25.  
  26. $mail = new PHPMailer();
  27.  
  28. $mail->IsSMTP();
  29.  
  30. $mail->From  = '';
  31. $mail->FromName = 'Serwis Remco';
  32. $mail->AddAddress('aaa@aaa.pl');
  33.  
  34. $mail->WordWrap = 50;  
  35. $mail->AddAttachment('tmp/'.$pname);
  36. $mail->IsHTML(true);
  37.  
  38. $mail->Subject = 'temat';
  39. $mail->Body  = $tresc;
  40. $mail->AltBody = $tresc;
  41.  
  42.  
  43. if(!$mail->Send()) $send_error = true;
  44. if(isset($pname)) unlink('tmp/'.$pname);
  45. }
  46. ?>


Ustawienia serwera pozwalają na upload plików do 15 MB, a pamięć na wykonanie skryptu to 10MB.
Może ktoś wie co można z tym zrobić?
Dzięki za pomoc.

Ten post edytował 1maciek 16.11.2006, 15:52:05
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: 2.10.2025 - 16:13