Преобразовать file_get_contents в $ _FILES

У меня есть функция, которая будет получать вводимые пользователем данные и вводимые файлы в форме и отправлять их по электронной почте. Я использую этот код для захвата этих файлов:

$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.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
293
1

Ответы 1

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;

Другие вопросы по теме