Написал скрипт для отправки файла по почте:
<?php
$message = "Test message with attachment";
$subject = "Hello World";
$mailto = "starovoyt107@yandex.ru";
$filename = $_POST['fl'];
$path = "C:\OpenServer\userdata"; //В этой директории выбираю файл для отправки
$file = $path.$filename;
$content = file_get_contents($file);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$nmessage = "--".$uid."\r\n";
$nmessage .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$nmessage .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$nmessage .= $message."\r\n\r\n";
$nmessage .= "--".$uid."\r\n";
$nmessage .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$nmessage .= "Content-Transfer-Encoding: base64\r\n";
$nmessage .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$nmessage .= $content."\r\n\r\n";
$nmessage .= "--".$uid."--";
if (mail($mailto, $subject, $nmessage, $header)) {
return true;
} else {
return false;
}
?>
Однако в итоге получаю ошибку:
Warning: file_get_contents(C:\OpenServer\userdata): failed to open stream: Permission denied in C:\OpenServer\domains\localhost\send_mail.php on line 9
Я уже снимал на папку OpenServer атрибут "только для чтения" - не помогает, к тому же, галочка снова появляется... И ладельца через свойства менял, и галочки ставил, чтобы полный доступ был - не работает...
Warning: file_get_contents(C:\OpenServer\userdata): failed to open stream: Permission denied in C:\OpenServer\domains\localhost\send_mail.php on line 9
сами выше пишите что это C:\OpenServer\userdata
директория. А значит у вас $filename = $_POST['fl'];
пусто в $filename
и совету выше добавьте разделитель в $file = $path. DIRECTORY_SEPARATOR .$filename;
где DIRECTORY_SEPARATOR = \ | /
знак |
читать как или.
"C:\\OpenServer\\userdata"
либо "C:/OpenServer/userdata"
.$file = $path.$filename;
добавить разделитель между путем и файлом. Должно быть так $file = $path.'\\'.$filename;
, либо так $file = $path.'/'.$filename;
, в зависимости от того, какой разделитель вам ближе.PS Ну и в целом сделайте вывод получившегося значения $file
и посмотрите, действительно ли такой файл есть
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеУ меня стоит задача распределить ключевые слова по категориям при загрузке
Есть массив по выводу категорий в виде ссылокНужно каждую ссылку обернуть в div