У меня есть функция, которая будет получать вводимые пользователем данные и вводимые файлы в форме и отправлять их по электронной почте. Я использую этот код для захвата этих файлов:
$attachments_array = NULL;
foreach($_FILES as $userfile){
// store the file information to variables for easier access
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];
if ($tmp_name != ""){
$data=array(
'tmpfname' => $tmp_name,
'filename' => $name,
'type' => $type,
);
$attachments_array[] = $data;
}
}
Итак, я получаю ввод файла пользователя и помещаю его в $attachments_array. Но что, если у меня есть фиксированный файл, расположенный где-то вроде:
https://www.myurl.com/A_Beginners_Guide_to_Outsourcing.pdf
Как передать это в массив вложений? Я стараюсь:
$attachments_array[] = file_get_contents('https://www.myurl.com/A_Beginners_Guide_to_Outsourcing.pdf');
Но вроде не работает. Я хотел бы передать его в массиве вложений, как переменную $data.






file_get_contents получает только фактическое содержимое файла и возвращает его.
Вам нужно будет создать ассоциативный массив и самостоятельно заполнить все используемые параметры и, возможно, сохранить файл где-нибудь локально, в зависимости от того, каковы дальнейшие шаги в обработке вашего файла.
$row = array();
$row['filename'] = 'A_Beginners_Guide_to_Outsourcing.pdf';
$row['type'] = "application/pdf"; // you might need some other method of getting a file type.
$tmp_path = "/my/tmp/path/".$row['filename'];
$body = file_get_contents('https://www.myurl.com/A_Beginners_Guide_to_Outsourcing.pdf');
file_put_contents($tmp_path, $body); // btw, be careful of what you save on your server..
$row['tmpfname'] = $tmp_path;
$attachments_array[] = $row;