Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHPMailer - załącznik z formularza
jaskowice1
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


Witam

Mam problem z dodaniem załącznika do phpmailera. Potrzebuję by ten załącznik był ładowany z inputa, żeby dało się wgrać tylko pliki .doc, .docx, .pdf i po wszystkim to jest wysyłane na maila.

Link do jakiegoś przykładu można, bo co znajdę to nie działa mi, coś muszę źle robić - tylko nie wiem co :/

Czekam na odpowiedź
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
nospor
post
Post #2





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




1) No to jesli to co masz ci nie dziala to pokaz co masz.... wywrozyc to mamy sobie i poprawic ci kod w myslach?
2) Ale rozumiesz, że najpierw plik musi byc poprawnie wgrany na serwere? Tu masz napisane jak sie robi upload
http://pl1.php.net/manual/en/features.file...post-method.php
Go to the top of the page
+Quote Post
jaskowice1
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


Mam coś takiego:

  1. if ($_FILES) {
  2. $plik_tmp = $_FILES['file']['tmp_name'];
  3. $plik_nazwa = $_FILES['file']['name'];
  4. $target_path = "uploads/";
  5. $target_path = $target_path . basename( $_FILES['file']['name']);
  6. echo $target_path;
  7. if(is_uploaded_file($plik_tmp)) {
  8. move_uploaded_file($plik_tmp, $target_path);
  9. echo "Plik: <strong>$plik_nazwa</strong>został przesłany na serwer!<br/><br/>";
  10.  
  11.  
  12. }
  13.  
  14. }
  15.  
  16. $mail->AddAttachment("uploads/".basename( $_FILES['file']['name']));


Chciałbym teraz dodać do tego filtracje, żeby wysyłało tylko pliki .pdf, .doc, .docx - jak to zrobić ?
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Sprawdzaj mime-type i rozszerzenie.
Go to the top of the page
+Quote Post
jaskowice1
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


W której części ? Ja troszku początkujący jestem w tych sprawach.
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jeszcze przed move_uploaded_file.
Mime type pobierzesz getimagesize a rozszerzenie sprawdzić explode rozbijając nazwę pliku po kropkach i sprawdzając ostatni lement tablicy end
Go to the top of the page
+Quote Post
jaskowice1
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


A dlaczego coś takiego mi nie działa ?

  1. if ($_FILES['file']['type'] == 'application/msword' || $_FILES['file']['type'] == 'application/pdf') {
  2.  
  3. $mail->MsgHTML($email_message);
  4. $mail->AddAttachment("uploads/".basename( $_FILES['file']['name']));
  5. }
  6.  
  7. else {
  8. echo("<div style='clear:both; width:400px; margin: 0 auto;color:#bab8c6;'>Możesz przesłać tylko pliki .pdf, .doc lub .docx</div>");
  9. }
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Sprawdź sobie dla testów jaki type ma wysyłany plik, dając przed warunkiem np.
  1. echo 'file type: '.$_FILES['file']['type'];
Go to the top of the page
+Quote Post
jaskowice1
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


Ok dzięki, miałem

  1. application/vnd.openxmlformats-officedocument.wordprocessingml.document


a jeszcze pytanie mam, jak zrobić żeby nie wysyłało formularza jak są puste pola ? Bo teraz mi wysyła z pustymi polami nawet, a mam walidacje w jquery
Go to the top of the page
+Quote Post
Turson
post
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


php
  1. if(!empty($_FILES['file']['name'])){
  2. //ok
  3. }
  4. else{
  5. //puste
  6. }


co do walidacji jquery to wrzuć na jsfiddle jak masz
Go to the top of the page
+Quote Post
jaskowice1
post
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


http://jsfiddle.net/xP7ey/

Nie ma tu niektórych styli.
Go to the top of the page
+Quote Post
Turson
post
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Zobacz w konsoli przeglądarki czy nie sypie jakimś błędem
Go to the top of the page
+Quote Post
jaskowice1
post
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


Może być tak zrobiony warunek ?

  1. if(!empty($_POST[miasto]) && !empty($_POST[imie]) && !empty($_POST[telmail]) && !empty($_POST[doswiadczenie]) && !empty($_POST[textarea]) && !empty($_FILES['file']['name'])){
Go to the top of the page
+Quote Post
Turson
post
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


indeksy weż w 'miasto'
Go to the top of the page
+Quote Post
jaskowice1
post
Post #15





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 16.06.2014

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


  1. if(!empty($_POST[miasto] && $_POST[imie] )


..itd ?

Ten post edytował jaskowice1 17.06.2014, 12:05:12
Go to the top of the page
+Quote Post
Turson
post
Post #16





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Tak, miasto, imie itd. Każdy
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: 6.10.2025 - 02:09