Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Временная память в php загрузке файлов 
:(
    Опции темы
SIMarOK
Дата 6.11.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



каков ее размер? 10 мб?

Я пытаюсь загрузить 20 картинок с общим объемом не более 3 мегобайта, но скрипт попутно делает уменьшенные копии картинок, каждый картинка загружается в цикле. Сохранение всего этого происходит только в самом конце почему-то. Так вот, иногда он загружает все нормально, а иногда выводит ошибку Невозможно отобразить страницу, и не заканчивает загрузку всех картинок, а только часть их...почему такое случанется? может что-то переполняется?
PM MAIL   Вверх
Mal Hack
Дата 6.11.2005, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Может памяти скрипту не хватает, может процессу веб-сервера, что вероятнее,может выходит за пределы максимального времени работы.
PM ICQ   Вверх
SIMarOK
Дата 6.11.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



но как же тогда такое реализуется? Мне нужно чтобы за раз загрузилось до 40 файлов и попутно делались в ту же папку мелкие копии.
PM MAIL   Вверх
Mal Hack
Дата 6.11.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Ну я думаю что не зараз...
Сделай одну временную таблицу в ней храни фотки, который надо уменьшить.
При загрузке - залей фотки, и сделай HTML код, который бы через JS вызывал бы твой файл, которому передавал бы в качестве параметра имя файла для уменьшения. И пусть в цикле (JS) он у тебя делает уменьшенные копии. 4images вроде по такому принципу работает.
PM ICQ   Вверх
SIMarOK
Дата 6.11.2005, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



просто для эксперимента попробывал запустить отдельно скрипт уменьшения картинок:
Код

<?
set_time_limit(1200);
$pic[0]="113130265000.jpg";
$pic[1]="113130265101.jpg";
$pic[2]="113130265102.jpg";
$pic[3]="113130265103.jpg";
$pic[4]="113130265104.jpg";
$pic[5]="113130265105.jpg";
$pic[6]="113130265206.jpg";
$pic[7]="113130265207.jpg";
$pic[8]="113130265208.jpg";
$pic[9]="113130265209.jpg";
$pic[10]="113130265210.jpg";
$pic[11]="113130265211.jpg";
$pic[12]="113130265212.jpg";
$pic[13]="113130265313.jpg";
$pic[14]="113130265314.jpg";
$pic[15]="113130265315.jpg";
for($j=0;$j<17; $j++)
{
$n++;
$file_name=$pic[$j]; 
$y=190;#px  //будущий размер изображения в пикселях по высоте 
$simg = getimagesize($file_name); 

$w = $y; 
$h = $w*$simg[1]/$simg[0]; 
    // определим коэффициент сжатия изображения, которое будем генерить 
    $ratio = $w/$h; 
    // создадим пустое изображение по заданным размерам 
    $dest_img = imagecreatetruecolor($w, $h); 
    // зальём его белым цветом 
    imagefill($dest_img, 0, 0, 0xFFFFFF); 
    // получим размеры исходного изображения 
    $size_img = getimagesize($file_name); 
    // получим коэффициент сжатия исходного изображения 
    $src_ratio=$size_img[0]/$size_img[1]; 

    // здесь вычисляем размеры, чтобы при масштабировании сохранились 
    // 1. Пропорции исходного изображения 
    // 2. Исходное изображение полностью помещалось на маленькой копии 
    // (не обрезалось) 
    if ($src_ratio>$ratio) 
    { 
        $old_h=$size_img[1]; 
        $size_img[1]=floor($size_img[0]/$ratio); 
        $old_h=floor($old_h*$h/$size_img[1]); 
    } 
    else 
    { 
        $old_w=$size_img[0]; 
        $size_img[0]=floor($size_img[1]*$ratio); 
        $old_w=floor($old_w*$w/$size_img[0]); 
    } 

    // исходя из того какой тип имеет изображение 
    // выбираем функцию создания 
$path_parts= pathinfo($file_name); 
$ext = $path_parts["extension"]; 
$src_img = imagecreatefromjpeg($file_name); 


    // масштабируем изображение    функцией imagecopyresampled() 
    // $dest_img - уменьшенная копия 
    // $src_img - исходной изображение 
    // $w - ширина уменьшенной копии 
    // $h - высота уменьшенной копии 
    // $size_img[0] - ширина исходного изображения 
    // $size_img[1] - высота исходного изображения 
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
 
            $file_nameN='mini_'.$pic[$j];
            $uploa_file = '/home/public_html/files/'.$file_nameN;
    // в зависимости от типа файла выбирвем функцию сохранения в файл 

imagejpeg($dest_img, $uploa_file, 90); 



    // чистим память от созданных изображений 
    imagedestroy($dest_img); 
    imagedestroy($src_img);
            $mpic[$j]=$file_nameN;
}
echo $n;
?>


И он мне делает по разному, иногда 12 маленьких копий, иногда 14, по разному...но не все...почему так? Изображения в срежнем по 90кб

Незнаю в чем проблемаsmile
---------------------------------
На локальном сервере работает без проблем, создает все что нужно, а на хостинге не хочет, вот какие там ограничения:
MySQL:

колличество запросов к БД в час (max_questions) = 28800
колличество соединений с БД (max_user_connections) = 40

PostgresSQL:

колличество соединений с БД (max_connections) = 10

CPU (загрузка процессора):

если процесс загружает процессоры сервера в течение 30сек. на 10%, процесс корректно завершается
если процесс загружает процессоры сервера в течение 5сек. на 60%, процесс корректно завершается

Processes (колличество процессов):

18 процессов

RAM (оперативная память сервера):

28Mb на процесс

FTP:

2 соединения

File:

max file size = 200Mb
----------------------------------------
Но разве этот скрипт попадает под какое либо из этих ограничений?

Это сообщение отредактировал(а) SIMarOK - 6.11.2005, 23:35
PM MAIL   Вверх
SIMarOK
Дата 7.11.2005, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Решил запускать этот скрипт с локалки. В скрипте происходит соединение с фтп, загрузка картинки, потом делает сразу ее уменьшенная копия, но так как функция imagejpeg(); не может отправить файл на фтп, то я хочу чтобы она сохранилась у меня на жестком, а потом бы я сразу ее отправил стандартной функцией ftp_put.
Как мне это сделать? как указать ему путь сохранение маленькой картинки на жестком?

PM MAIL   Вверх
SIMarOK
Дата 7.11.2005, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Так, сохранение я сделал, но как мне указать файл $_FILES['upload_file']['name'] уменьшенный для загрузки ftp_put? Без формы хтмл...
Добавлено @ 18:58
файл находится там же где и скрипт, нужно чтобы он автоматически брал файл и загружал
PM MAIL   Вверх
SIMarOK
Дата 7.11.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



я сам с собой разговариваю?) или никто не знает как передать $_FILES['upload_file']['name'] форменные данные, если я знаю имя и где находится картинка....
PM MAIL   Вверх
Mal Hack
Дата 8.11.2005, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



SIMarOK будь добр объясни по русски конкретно в чем проблема и что тебе надо сделать... Если честно очень тяжело, по крайней мере мне, понять что ты хочешь
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.