| imho.ws |
![]() |
|
|
|
# 5 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Если речь идет о HTTP upload'е, то нередко файлы бьются из-за отсутствия атрибута тэга form: ENCTYPE="multipart/form-data" .
Если же говорим о HTTP download, то в заголовке нужно указать Content-length, чтобы файл не обрывался раньше времени из-за плохой связи . Вообще TCP/IP следит за целостностью передаваемой информации и можно с уверенностью утверждать, что если и бьется файл, то на одной из сторон . |
|
|
|
|
# 7 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нужно сгенерировать правильно текст писма . Для этого нужно добавить заголовки:
Content-Type: multipart/mixed; boundary="разделитель" "разделитель" - это простая строка . Лучше всего ренерировать произвольные строки (md5,uniqid,srand и т.д.) Далее в тело письма добавляем строки: разделитель Content-Type: application/octet-stream; name="любое_имя_файла" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="любое_имя_файла" \n\n сам файл (кодированный base64) разделитель PS: Чтобы кодировать файл base64 его необходимо открыть fopen и затем кусками по 64 символа (байта) кодировать в base64 (base64_encode) . |
|
|
|
|
# 8 |
|
::VIP::
Художник-2004 Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
PHP код:
Последний раз редактировалось sanchos; 09.12.2002 в 01:25. |
|
|
|
|
# 9 |
|
Junior Member
Регистрация: 28.07.2002
Адрес: www
Сообщения: 102
![]() |
PHP код:
__________________
"640K ought to be enough for anybody." - Bill Gates, 1981. Последний раз редактировалось AA666; 09.12.2002 в 10:57. |
|
|
|
|
# 11 |
|
Junior Member
Регистрация: 28.07.2002
Адрес: www
Сообщения: 102
![]() |
- http://www.utoronto.ca/webdocs/HTMLd.../mimetype.html
- в цикле: $multipart .= "--$boundary\n"; ........ $multipart .= chunk_split(base64_encode($data));
__________________
"640K ought to be enough for anybody." - Bill Gates, 1981. |
|
|
|
|
# 12 |
|
::VIP::
Художник-2004 Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
По-поводу content-type спасибо
Я уже лучше доки нашел.А вот насчет цикла... Разве еще в $header ничего добавлять не надо? Если можно, то поподробнее ![]() Да, и еще: как вместе с приаттаченным фалом мне текст письма послать? Пасиб за внимание
|
|
|
|
|
# 13 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нужно приатачить текстовый файл:
-=разделитель=- Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit \n\n сам_текст -=разделитель=- Вот пример тела сообщения (всмысле параметра для функции mail) с текстом и несколькими файлами: -=разделитель=- Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit \n\n сам_текст -=разделитель=- Content-Type: application/octet-stream; name="имя_файла1". Content-Transfer-Encoding: base64. Content-Disposition: attachment; filename="имя_файла1" \n\n тело первого файла, кодированное base64 -=разделитель=- Content-Type: application/octet-stream; name="имя_файла2". Content-Transfer-Encoding: base64. Content-Disposition: attachment; filename="имя_файла2" \n\n тело второго файла, кодированное base64 -=разделитель=- |
|
|
|
|
# 17 |
|
::VIP::
Художник-2004 Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Блин! Опять нифига
(PHP код:
- с текстом все нормально - файл только один - первый - второй файл называется как первый, но показывает не изображение, а херню кодированную ![]() Если кому не лень, разберитесь, плиз Я уже устал...
|
|
|
|
|
# 18 |
|
Junior Member
Регистрация: 28.07.2002
Адрес: www
Сообщения: 102
![]() |
Поменяй в середине $multipart .= "--$boundary--\n"; на $multipart .= "--$boundary\n";
два дефиса в конце должно быть только у самого последнего разделителя.
__________________
"640K ought to be enough for anybody." - Bill Gates, 1981. |
|
|
|
|
# 20 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Честно говоря, не видя поправленного кода сложно что-либо говорить, но сразу бросается в глаза:
PHP код:
|
|
|