Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.07.2002, 21:38
Bednyachok вне форума Посмотреть профиль Отправить личное сообщение для Bednyachok Посетить домашнюю страницу Bednyachok Найти все сообщения от Bednyachok
  № 1  
Bednyachok

Регистрация: Apr 2002
Адрес: Ростовская обл, г. Ростов-на-Дону
Сообщений: 24
Отправить сообщение для Bednyachok с помощью ICQ
По умолчанию Может ли функция mail отправлять файлы ???

Уважаемые знатоки!!!
Подскажите может ли функция mail отправлять файлы???
Короче есть простая форма отправки анкет, нужно добавить вложение файла.
__________________
Кто последний тот и папа!!!

Старый 05.07.2002, 23:12
Самурай вне форума Посмотреть профиль Отправить личное сообщение для Самурай Найти все сообщения от Самурай
  № 2  
Самурай
Ветеран форума

Регистрация: Aug 2001
Адрес: /kiev.ua/butuzov
Сообщений: 3,045
Отправить сообщение для Самурай с помощью ICQ
да может...
__________________
...

Старый 05.07.2002, 23:18
Bednyachok вне форума Посмотреть профиль Отправить личное сообщение для Bednyachok Посетить домашнюю страницу Bednyachok Найти все сообщения от Bednyachok
  № 3  
Bednyachok

Регистрация: Apr 2002
Адрес: Ростовская обл, г. Ростов-на-Дону
Сообщений: 24
Отправить сообщение для Bednyachok с помощью ICQ
А как это реализовать?
Я вставляю ХТМЛ тэг, который указывает расположение файла. А потом в функции майл указываю его имя как обычную переменную?
__________________
Кто последний тот и папа!!!

Старый 06.07.2002, 01:34
Ilya вне форума Посмотреть профиль Отправить личное сообщение для Ilya Найти все сообщения от Ilya
  № 4  
Ilya
 
Аватар для Ilya

Регистрация: Jun 1999
Адрес: Russia, Samara
Сообщений: 1,138
Hi !

Проще всего взять какой-нибудь готовый класс :) например стандартный MIME.class из аттача
тогда если попытаться отправить скажем file.zip будет что-то вроде
Код:
<?
$file_name = "file.zip";
$file_description = "test file";
$mail_from = "from@e-mail.com";
$mail_to = "to@e-mail.com";
$subject = "Hello!";
$message = "Just testing";
$type = "application/x-zip";
$file_pointer = fopen ($file_name, "r");
$file_contents = fread ($file_pointer, filesize ($file_name));
fclose ($file_pointer);
include "MIME.class";
$mime = new MIME_mail($mail_from, $mail_to, $subject, $message);
$mime->fattach($file_contents, $file_description, $type, $file_name);
$mime->send_mail();
?>

PS давненько что-то меня тут не было :)
Вложения
Тип файла: zip mime_class.zip (3.0 Кб, 99 просмотров)


Последний раз редактировалось Ilya; 06.07.2002 в 01:37.
Старый 06.07.2002, 17:25
Bednyachok вне форума Посмотреть профиль Отправить личное сообщение для Bednyachok Посетить домашнюю страницу Bednyachok Найти все сообщения от Bednyachok
  № 5  
Bednyachok

Регистрация: Apr 2002
Адрес: Ростовская обл, г. Ростов-на-Дону
Сообщений: 24
Отправить сообщение для Bednyachok с помощью ICQ
Ув. Илья!
Привет!!!
Подсказал капитально, но вопрос требует продолжения! =)
Мне нужно что бы файл не указывался явным образом, а подставлялся с помощью <input type="file" name="file">
Подскажи пожалуйста!!!
__________________
Кто последний тот и папа!!!

Старый 07.07.2002, 20:23
Ilya вне форума Посмотреть профиль Отправить личное сообщение для Ilya Найти все сообщения от Ilya
  № 6  
Ilya
 
Аватар для Ilya

Регистрация: Jun 1999
Адрес: Russia, Samara
Сообщений: 1,138
HI !

Ну тогда можно сказать что-то вроде
Код:
<?
	if ($userfile) {
	$file_name = $HTTP_POST_FILES['userfile']['name'];
	$type = $HTTP_POST_FILES['userfile']['type'];
	$file_description = "test file";
	$mail_from = "from@e-mail.com";
	$mail_to = "to@e-mail.com";
	$subject = "Hello!";
	$message = "Just testing";
	$file_pointer = fopen ($userfile, "r");
	$file_contents = fread ($file_pointer, filesize ($userfile));
	fclose ($file_pointer);
	include "MIME.class";
	$mime = new MIME_mail($mail_from, $mail_to, $subject, $message);
	$mime->fattach($file_contents, $file_description, $type, $file_name);
	$mime->send_mail();
	echo "file send";
} else {?>
	<FORM ENCTYPE="multipart/form-data" METHOD=POST>
	<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
	Send this file: <INPUT NAME="userfile" TYPE="file">
	<INPUT TYPE="submit" VALUE="Send File">
	</FORM>
<?}?>
а переменные например можно не задавать, а передавать через поле ввода формы (или скрытое)

PS Только не советую использовать встроенную поддержку аплоада в PHP - опасно это.. Через одну такую форму сервер можно повалить по счету раз..

Старый 08.07.2002, 14:13
Bednyachok вне форума Посмотреть профиль Отправить личное сообщение для Bednyachok Посетить домашнюю страницу Bednyachok Найти все сообщения от Bednyachok
  № 7  
Bednyachok

Регистрация: Apr 2002
Адрес: Ростовская обл, г. Ростов-на-Дону
Сообщений: 24
Отправить сообщение для Bednyachok с помощью ICQ
Привет!
Все равно не работает. Если мы к примеру пытаемся отправить файл autoexec.bat c диска C:\ то пишет:
Warning: fopen("\\php2","r") - Unknown error in f:\www\file.php3 on line 10
Warning: Unable to find file identifier 0 in f:\www\file.php3 on line 11
Warning: Unable to find file identifier 0 in f:\www\file.php3 on line 12
__________________
Кто последний тот и папа!!!

Старый 08.07.2002, 18:22
Ilya вне форума Посмотреть профиль Отправить личное сообщение для Ilya Найти все сообщения от Ilya
  № 8  
Ilya
 
Аватар для Ilya

Регистрация: Jun 1999
Адрес: Russia, Samara
Сообщений: 1,138
Hi !

значит просто сервер не настроен или неправильно прописана upload_tmp_dir в php.ini
А вообще если кто забыл, то у меня дурацкая привычка есть проверять как работает, перед тем как говорить

Старый 09.07.2002, 13:43
Bednyachok вне форума Посмотреть профиль Отправить личное сообщение для Bednyachok Посетить домашнюю страницу Bednyachok Найти все сообщения от Bednyachok
  № 9  
Bednyachok

Регистрация: Apr 2002
Адрес: Ростовская обл, г. Ростов-на-Дону
Сообщений: 24
Отправить сообщение для Bednyachok с помощью ICQ
Привет!
Илья ну если уж начали такую тему, давай попробуем закончить =)
Что мне нужнл прописать в php.ini или какой каталог указать для upload ???
Если можешь покажи свои настройки, меня интересуют только касающиеся отправки файлов.

Еще там вот у тебя функции:
$file_pointer = fopen ($userfile, "r");
$file_contents = fread ($file_pointer, filesize ($userfile));
1. Зачем открывать файл???
2. У нас же переменная $userfile равна не какому то файлу, а полному пути к файлу, включая диски и директории.

Если не сложно, помоги пожалуйста разобраться, ну сильно уж надо сделать такую форму!!!
__________________
Кто последний тот и папа!!!

Старый 09.07.2002, 15:31
Ilya вне форума Посмотреть профиль Отправить личное сообщение для Ilya Найти все сообщения от Ilya
  № 10  
Ilya
 
Аватар для Ilya

Регистрация: Jun 1999
Адрес: Russia, Samara
Сообщений: 1,138
Hi !

Ну раз так, тогда и я не понимаю зачем что-то делать под win32 ? Или это не для реальных задач а только в целях изучения ? Ну а если изучения, то под windows все намного сложнее. Во первых нету родных нормальных средств отправки почты. По моему самое человеческое что можно найти это Advanced Direct Remailer, но его нужно ставить отдельно. Во вторых большинство версий php для win32 имеет массу проблем с автоматическим удалением временных файлов созданных при аплоаде, поэтому на них лучше на всякий случай вручную натравливать сначала move_uploaded_file , а потом unlink. В третьих в переменную $userfile используемую в скрипте поступает полный путь к временному файлу с довольно большой задержкой и вполне вероятен случай когда скрипт отработал получае файла, сохранил его в виде временного файла, а переменная $userfile еще пуста. И до кучи $HTTP_POST_FILES['userfile']['tmp_name'] вообще почти никогда под windows ничего не содержит, даже в самом конце работы скрипта. Под *nix подобных проблем кстати не было никогда
Ну а что касается php.ini, то у меня например там написано

[mail function]
SMTP = localhost;

и

file_uploads = On;
upload_tmp_dir = c:/temp;
upload_max_filesize = 1M;

это с учетом установленного ADR
А открываем и читаем файлпотому что нам нужно отправить по почте содержимое файла, а не путь к нему

Создать новую тему   Часовой пояс GMT +4, время: 10:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.