Я создаю простую форму, которая позволяет пользователю «загружать» файл и поле комментариев. после того, как пользователь выберет файл (может быть изображение или 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