отправлять электронную почту с вложением в php без сохранения файла на веб-сервере

Я создаю простую форму, которая позволяет пользователю «загружать» файл и поле комментариев. после того, как пользователь выберет файл (может быть изображение или PDF) и нажмите «Отправить», я не собираюсь хранить файл на своем веб-сервере, файл будет вставлен в электронное письмо и отправлен мне.

мой вопрос: как я могу прикрепить файл, не сохраняя его в любом месте.

Я не хочу использовать сторонний модуль.

Обновить:

$attachment = $_FILES["OrderList"]["tmp_name"]; $content = file_get_contents($attachment); $content = chunk_split(base64_encode($content)); 

У меня ошибка:

Имя файла не может быть пустым в C: \ dir \ orders \ upload.php в строке 24

строка 24 – $content = file_get_contents($attachment);

Вы уже сохранили его, когда принимаете загрузку файла с PHP.

Просто используйте его, когда он хранится в папке tmp.

PHP автоматически удалит его для вас, когда закончится ваш скрипт.

Сегодня я столкнулся с подобной ситуацией и нашел решение, так что вот оно

 if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br>"; } else { $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); $newname= $_FILES["file"]["tmp_name"].".".$extension; rename($_FILES["file"]["tmp_name"],$newname); $attachments = array( $newname ); wp_mail('emailto send', 'title', 'message','',$attachments ); } 

Загружая файл, он сохраняется на вашем сервере в папке temp. Исключением является метод PUT, и в этом случае файл отправляется непосредственно на входе php: //. После этого вы можете использовать любую почтовую рассылку PHP, которую вы предпочитаете.

Руководство PHP для файлов PUT'ing