PHP: загрузка файла MS Word в форму и отправка по электронной почте

Я пытаюсь создать форму, в которой есть возможность загрузить вложение (MS WORD) и отправить это вложение на адрес электронной почты. Я получил форму с базовыми значениями для работы и успешной отправки, но у меня проблемы с чтением / обработкой PHP загруженного файла.

Это ошибки, которые я получаю:

Предупреждение: fopen () ожидает, что параметр 1 будет правильным путем, задан массив
в C: \ xampp \ htdocs_form \ upload \ process-upload.php в строке 15

Предупреждение: filesize () ожидает, что параметр 1 будет правильным путем, массив
указано в C: \ xampp \ htdocs_form \ upload \ process-upload.php в строке 16

Предупреждение: fread () ожидает, что параметр 1 будет ресурсом, логическое значение дано в
C: \ xampp \ htdocs_form \ upload \ process-upload.php в строке 16

Предупреждение: fclose () ожидает, что параметр 1 будет ресурсом, логическое значение дано в
C: \ xampp \ htdocs_form \ upload \ process-upload.php в строке 17

Примечание: преобразование массива в строку в
C: \ xampp \ htdocs_form \ upload \ process-upload.php в строке 31

Это мой код PHP:

$to = '[email protected]';
$subject = 'PHP Scripting';

$name = $_POST['name'];
$comments = $_POST['comments'];
$email = $_POST['email'];

$message = "This email has an attachment.";
$upload = $_FILES['upload'];
$upload_MIME_type = "application/msword";

$handle = fopen ($upload, "rb");
$data = fread ($handle, filesize($upload));
fclose ($handle);

$boundary = "---Multipart_Boundary---";

$headers = "/nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"" . $boundary . "\"";

$data = chunk_split(base64_encode($data));

$text = "--" . $boundary . "\n" .
"Content-Type:text/plain\nContent-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n--" . $boundary . "\n" .
"Content-Type: " . $upload_MIME_type . ";\n name=\"" .
$upload . "\"\nContent-Transfer-Encoding: base64\n\n" .
$data . "\n\n--" . $boundary . "--\n";

$body = <<<EOD
<br><hr><br>
Name: $name <br>
Comments: $comments <br>
Email: $email <br>
EOD;

$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($to, $subject, $text, $body, $headers);
if($success) {
echo "The email was sent.";
} else {
echo "The email was not sent.";
}

Может кто-нибудь, пожалуйста, укажите мне в правильном направлении, чтобы понять это.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]