Я пытаюсь создать форму, в которой есть возможность загрузить вложение (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.";
}
Может кто-нибудь, пожалуйста, укажите мне в правильном направлении, чтобы понять это.
Задача ещё не решена.
Других решений пока нет …