2013-10-10 3 views
0

Я использую PHPMail от: https://github.com/PHPMailer/PHPMailerPHPMailer добавлять вложения

и я хочу, чтобы иметь возможность добавлять вложения, начиная с корневого пути:

$email->AddAttachment("../../admin/billing/invoices/5847884.pdf" , basename("../../admin/billing/invoices/5847884.pdf")); 

, но вместо того чтобы использовать ../../ я хочу, чтобы иметь возможность просто использовать /admin/billing...

я попробовал, но его не прикреплять вложения

+0

Зачем вам использовать что-либо еще, если это работает? –

+0

, потому что имена вложений поступают из базы данных, поэтому они не всегда будут ../../, поэтому в базе данных я хочу, чтобы у вас был полный путь (/admin/attachment/1.pdf) или (/admin/folder/234.pdf) – user2710234

+0

Файлы должны быть прикреплены как относительно текущего пути или даже лучшего, абсолютного пути. Вы всегда должны знать, где находится ваш файл в файловой системе. –

ответ

2

Как «/admin/folder/234.pdf» пр obably не является допустимым абсолютным путем в файловой системе, PHPMailer не может найти ваш файл.

Вы должны добавить директорию вашего вебпространства:

$email->AddAttachment($_SERVER['DOCUMENT_ROOT'].'/admin/billing/invoices/5847884‌​.pdf'); 

Btw, вы можете оставить свой второй аргумент, PHPMailer будет использовать базовое имя() на первый аргумент, чтобы получить имя файла.

+0

+1 возможно, самое лучшее решение, которое можно добавить, но вы можете добавить определение: 'define ('INVOICE_DIR', $ _SERVER ['DOCUMENT_ROOT']. '/ Admin/billing/invoices /');' then ' AddAttachment (INVOICE_DIR. 5847884.pdf '); ' – MackieeE

Смежные вопросы