Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибка mail() при прикрепленном файле больше 500 кб
 
 автор: ntro123   (19.02.2012 в 13:47)   письмо автору
 
 

Добрый день.

Есть скриптик, на локалхосте все верно пашет, на хостинге же нет. Отправляет файлы только до 500 кб, если больше то ф-ция mail возрашает false.

В логах:

PHP Warning: fread() [<a href='function.fread'>function.fread</a>]: Length parameter must be greater than 0 in /usr/home/34565/site.ru/html/forma.php on line 59, referer: http://www.site.ru/forma.php

Не нашел ничего талкового в инете, заранее спасибо за подсказку куда капать.

  Ответить  
 
 автор: cheops   (19.02.2012 в 13:55)   письмо автору
 
   для: ntro123   (19.02.2012 в 13:47)
 

А вы как содержимое файла читаете? Что указываете во втором параметре функции fread()? Почему там 0 оказывается?

  Ответить  
 
 автор: ntro123   (19.02.2012 в 13:59)   письмо автору
 
   для: cheops   (19.02.2012 в 13:55)
 

вот так:
$file=fopen($_FILES['add']['tmp_name'], "rb");
$text.="\n\n--trololo321\n";
$text.="Content-Type: application/octet-stream; name=".iconv('CP1251', 'UTF-8', $_FILES['add']['name'])."\n";
$text.="Content-Transfer-Encoding: base64\n";
$text.="Content-Disposition: attachment\n\n";
$text.=base64_encode(fread($file, filesize($_FILES['add']['tmp_name'])))."\n";



я без понятия как там 0. единственное могу сказать что когда файл размером не боле 500 кб то все норм.

  Ответить  
 
 автор: cheops   (19.02.2012 в 14:07)   письмо автору
 
   для: ntro123   (19.02.2012 в 13:59)
 

А файл успешно на сервер загружается (попробуйте проверить в отдельном мини-проекте, без отправки почты)?

  Ответить  
 
 автор: ntro123   (19.02.2012 в 17:15)   письмо автору
 
   для: cheops   (19.02.2012 в 14:07)
 

да, сделал как здесь http://www.softtime.ru/scripts/upload.php


загрузил архив в размером в 7 мб.

Как быть дальше?


Файл размером в 7 мб.

Array
(
    [add] => Array
        (
            [name] => x******.rar
            [type] => 
            [tmp_name] => 
            [error] => 1
            [size] => 0
        )

)


---------------------------------

файл размером в 100 кб.


Array
(
    [add] => Array
        (
            [name] => *****.rar
            [type] => application/x-rar-compressed
            [tmp_name] => Z:\tmp\php6618.tmp
            [error] => 0
            [size] => 167919
        )

)



В .htaccess добавил строчки:
php_value post_max_size 25M
php_value upload_max_filesize 25M


Теперь на локал хосте отилчно пашет, а на хостинге чтото вообще не пашет, причем никаких ошибок не выдает и логи пусты, а как доходит до строчки
$text.=fread($file, filesize($_FILES['add']['tmp_name']));
после нее ничего не выводит больше.


Проблема в base64_encode для больших файлов не работает я так понял =(

Про100 на хостинге не хватает памяти, нужно по потокам разбивать и кодировать, вообщем както так. Подскажет кто что?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования