Autor Zpráva
CAShiD
Profil
Zdravím všechny PHP/MySQL mozky.
Řeším takový problém. Potřebuji odeslat email s přílohami, které mám uloženy binárně v MySQL databázi.
Používám PHPMailer a netuším jak soubor vydolovat z databáze tak, abych ho mohl přiložit k emailu.
Jen podotýkám, že nejsem žádný expert. Jak odeslat přílohu ze serveru po zadání cesty a názvu souboru však vím.

Do uvedeného řádku potřebuji vygenerovat soubor z DB tak, aby se přiložil a odeslal.
$mail->AddAttachment("/cesta/soubor.jpg", "soubor.jpg");


Pátral jsem na netu, Googlil, zkouším nesmysly (typu pokus, omyl), ale né a né něco vymyslet.

Ještě mě napadla jedna věc, zda by třeba nešlo vygenerovat soubor z DB někam na server (pak už bych postupoval běžnou metodou a soubor po akci opět smazal)
NOTE: Je zřejmé, že nechci nechat válet soubory někde ve složce :-)

Je možné, že podobnou věc už někdo řešil i přede mnou. Možná se Googlu ptám špatně...nevím :-(

Předem moc díky za vaši pomoc.
CAShiD
Majkl578
Profil
PHP Mailer by měl mít metodu AddStringAttachment, kterou by mělo jít připojit soubor, který fyzicky neexistuje.
CAShiD
Profil
Jak jednoduché a jak účiné :-)
Funguje jako víno ;-)

Vyřešeno takto: (jen ukázka - není to ošetřeno a vím že je to hnus, ale funguje to)
$MYDB = 'nazev_db';
$MYconnect = MySQL_PConnect('localhost','login','heslo');

MySql_Select_DB($MYDB, $MYconnect);
  $query = "SELECT nazev, binarni_priloha " . "FROM tabulka_soubory WHERE id = '1'";
  $result = mysql_query($query) or die('Chyba, nepripojeno!');
  list($nazev, $binarni_priloha) = mysql_fetch_array($result);
  
  $mail = new PHPMailer();
  ...
  $mail-> ....... //pripojení na SMPT, hlavičky, tělo zprávy apod.
  $mail->AddStringAttachment($binarni_priloha, $nazev); // zde je binární příloha
  $mail-> ......//zde můžeme dále pokračovat

Každopádně moc děkuji Majkl578 za pomoc ;-)
Snad to také někomu pomůže.
Díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0