Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie emaila z załącznikiem .jpg z adresu url
Forum PHP.pl > Forum > PHP
grywalny
  1. $files = array('http://www.aviationnews.eu/blog/wp-content/uploads/2009/04/boeing-p-8a-poseidon-successfully-completes-1st-flight.jpg'); //jakis tam plik z neta
  2. $to = "lala@op.pl";
  3. $from = "lala@tiri.pl";
  4. $subject ="blah blah";
  5. $message = "My message";
  6. $headers = "From: $from";
  7.  
  8.  
  9. $semi_rand = md5(time());
  10. $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  11.  
  12.  
  13. $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
  14.  
  15.  
  16. $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
  17. $message .= "--{$mime_boundary}\n";
  18.  
  19.  
  20. for($i=0;$i<count($files);$i++){
  21. $file = fopen($files[$i],"rb");
  22. $data = fread($file,filesize($files[$i]));
  23. fclose($file);
  24. $data = chunk_split(base64_encode($data));
  25. $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$i]\"\n" .
  26. "Content-Disposition: attachment;\n" . " filename=\"photo_[$i].jpg\"\n" .
  27. "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
  28. $message .= "--{$mime_boundary}\n";
  29. }
  30.  
  31. // send
  32.  
  33. $ok = @mail($to, $subject, $message, $headers);
  34. if ($ok) {
  35. echo "<p>mail sent to $to!</p>";
  36. } else {
  37. echo "<p>mail could not be sent!</p>";
  38. }


Ten piekny kod dziala jak marzenie kiedy pliki znajduja sie na moim serwerze. Tablice $files moge wypelnic sciezkami do plikow i sa wysylane jako zalacznik w emailu.

Niestety kiedy zmienie sciezke pliku na adres url do pliku tak jak w obecnym kodzie ktory wkleilem, dostaje taki oto blad:

"Warning: filesize(): stat failed for http://www.aviationnews.eu/blog/wp-content...-1st-flight.jpg in mojplik.php on line 69 Warning: fread(): Length parameter must be greater than 0 in mojplik.php on line 69 "

Czemu kod nie chce odczytac pliku? Przeciez to nie jest plik z mojego komputera, on juz jest gdzies zawieszony w internecie. Jest na jakims tam serwerze.

Jak zrobic zeby czytalo pliki z adresu url?questionmark.gif
alexandrus
Funkcja filesize nie działa z http, najlepiej zrobisz ściągając ten plik do jakiegoś tymczasowego pliku i czytając z niego wszystko co ci potrzeba.
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.