За последние 24 часа нас посетили 17798 программистов и 1645 роботов. Сейчас ищут 945 программистов ...

Не хватает памяти

Тема в разделе "Обработка изображений средствами PHP", создана пользователем Аngl, 16 ноя 2010.

  1. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Аngl
    а почему не пытаешься раскрутить собственный проект? если дела такие печальные
     
  2. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Это следующий шаг, и идеи есть. А вот опыта, сам видишь... кот наплакал..
     
  3. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    это надо спрашивать в супорте, потому что не всем информация нужна (а вот выкладывать её всем лень)
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Аngl
    Посмотри пример:
    http://www.adylevy.com/demo/imgUpload/
    Выбери файл, ресайзит налету. Сам скрипт:
    http://www.adylevy.com/index.php/2009/0 ... rencedata/

    Теперь насчет реализации на стороне сервера:
    Можно не создавать файл, мы получаем загруженный файл на сервер и используем exif_read_data для получения информации об изображении. Рассчитываем, поместится ли оно в памяти, и делаем вывод: либо уменьшаем, либо пользователю говорим, что у него полный фол.

    Помогу, только потому что знаю, что значит хуярить шваброй в баре за гроши, - знаю
     
  5. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Apple, пасиб! Уже поковыряла скрипты маненько, попробовала на сервере - работает. Правда, пишет "Upload Failed", когда на самом деле аплоадит без проблем, ну это сообщение можно заменить, я думаю - главное, что результат есть. Осталось поменять размеры на выходе (демо-скрипт ужимает до 400 пикселей по вертикали, мне надо больше), а для этого, я так поняла, надо править as-файл и компилировать потом fla в swf (если я ошибаюсь, то ткните носом, с флэшем дела практически не имела). Обнаружила, кстати, что у меня нету Флэша (раньше был, но комп новый), качаю сейчас. Хоть бы получилось в итоге!! Спасибо ещё раз за помощь.
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Аngl
    Если интересен более сложный (он же более красивый и НОВЫЙ вариант) этого скрипта:
    http://www.adylevy.com/index.php/2009/0 ... ient-side/

    Насчет изменения размера могу сказать, что покопавшись нашел константы, отвечающие за размер.
    Т.е да, прийдется пересобирать проект, и пересобирать в версии CS4.
    Возможно я сам это сделаю.
     
  7. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Я только что поставила CS5 - если версия новее, это же не проблема? Я думаю, что тоже нашла размерные константы: _MAX_WIDTH и _MAX_HEIGHT - они? Хуже другое: после локального ресайза скрипт выводит на странице не превьюшку, а сам файл. То есть, если выставить нужный размер 800, то он его и поставит - это только на время загрузки, конечно, но всё равно ломает на это время весь интерфейс. А перекроить, чтобы показывал превьюшку - или даже вообще ничего, только кнопку аплоад - это мне не потянуть, я ActionScript не знаю. Буду копаться, конечно, но не знаю...
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    попробуй хостагатор, я хз скока там дают оперы, но может прокатит и пох =)
     
  9. WildZero

    WildZero Активный пользователь

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    а за выделение памяти не memory_limit отвечает? или я туплю?
     
  10. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    По идее, да. Но на деле не работает, пробовала. Видимо, они подстраховались, заблокировали. Иначе какой дурак им платить будет деньги за дополнительную память, если можно функцию в скрипт всунуть - и дело в шляпе.

    Кстати, поменяла в as-скрипте _MAX_WIDTH и _MAX_HEIGHT на нужные 800, скомпилировала в swf - всё пашет! Уррааа!! Буду теперь подгонять РНР-файл на занесение в базу данных, переименование, создание превьюшек, и т.д. Так что смена хостера пока подождёт. Спасибо, ребятушки, что поддержали деушку, не дали пропасть. Сладкий вам кисс!
     
  11. WildZero

    WildZero Активный пользователь

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Посмотри тогда в сторону ihc.ru полтинник в месяц, memory_limit 128, плюс доступен к редактирования php.ini. поддержка говорит что память выделяется автоматически..
     
  12. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Аngl
    Рады были помочь =)
     
  13. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Пасиб, занесла в блокнотик.
     
  14. alexvy

    alexvy Активный пользователь

    С нами с:
    12 окт 2010
    Сообщения:
    1
    Симпатии:
    0
    Ангел, это вечная проблема стандартного хостинга - гарантировано не более 10% загрузки процессора! Есть у меня история занимательная из личного опыта на тему Битрикса и хостинга. Хостинг - это VDS Slidebar (выделенный виртуальный сервер), очень интересный у них подход к оплате - она почасовая и зависит от выбранных ресурсов, которые очень гибко меняются от откровенно слабых (тех же 10%) до сверхмощных (100% 4-ядерного процессора, ну и память и объем диска тоже можно менять). Так вот я установил все поминимуму, чтобы подешевле было, и попытался развернуть там битрикс-сайт (а Битрикс как известно - один из лидеров среди систем управления сайтами по потребляемым ресурсам) - фигушки! Пока не подкрутил чуток ресрусов - не встал зараза 8))
    Но как-только сайт развернул, мощность проца опять убавил до 10% и теперь пока не требуются какие-то ресурсоемкие операции (типа бэкап, переиндексация, импорт каталога) сижу на малом огне. Вот такие фокусы!
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    т.е. выкрутить в максимум, а как проект сдаст - все в минуса загнать! :D
     
  16. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    По сабжу - попробовать imagemagick. Это внешний процесс не занимающий память в РНР. Если на хостере можно вызывать его - смело используйте.

    Хотите яваскрипт - учите canvas, но это тогда 50% браузеров лесом идут. ActiveX даже не предлагаю - лесом идут все.
     
  17. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Всё долбаю этот флэш-аплоадер. Многое подогнала, галерея вроде работает, теперь вписываю в другие места на страничках, где должны подгружать картинки в тексте. Тут столкнулась с проблемой, которую никак не пойму - объясните? Короче, разные варианты флэшки подгружаются ява-скриптом. Для того, чтобы шло автоматом, каждому параграфу в цикле соответствует флешка под таким же номером, то есть imgUpload_p1.swf, imgUpload_p2.swf, итэдэ. Ява-скрипт пишу при помощи РНР прямо в цикле. Вот эта строчка:
    Код (Text):
    1. echo "swfobject.embedSWF(\"swf/imgUpload_p".$n.".swf\", \"flashHolder\", \"100%\", \"100%\", \"10.0.0\", false, flashvars, params, attributes);\n";
    Там $n - переменная цикла (или как там она называется, в теории я не сильна) - а вернее, на единицу больше, чтобы всегда было больше нуля. Когда смотрю хтмл-источник на выходе - всё как надо:
    Код (Text):
    1. swfobject.embedSWF("swf/imgUpload_p1.swf", "flashHolder", "100%", "100%", "10.0.0", false, flashvars, params, attributes);
    Но - не работает, флэшка не грузится. Если же пишу код без переменной
    Код (Text):
    1. echo "swfobject.embedSWF(\"swf/imgUpload_p1.swf\", \"flashHolder\", \"100%\", \"100%\", \"10.0.0\", false, flashvars, params, attributes);\n";
    то на выходе в результате строчка точно та же, что и с переменной, но флэшку находит без проблем. Что-то я явно недопонимаю. Рылась в инете на тему передачи переменных - если верить статейкам, то вроде я правильно делаю. Но не ловит он почему-то эту переменную. Если бы её в исходном хтмл-е не было, то тогда бы ещё понятно - но она же есть! А почему не читает?
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Аngl
    А как тебя зовут? =)
     
  19. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Ну, Елена - а что? Англ оригинальнее.
    Обзываццо будешь? Типо, Елена - под зад тебе коленом. На Англ обзывательство не подберёшь.

    Про переменную-то подскажешь? Чего оно кочевряжится?
     
  20. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Аngl
    а можно сразу несколько их посылать, откуда и куда это идет?
     
  21. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Переменных несколько? Да пока бы одну. Эта строчка в скрипте подгружает флэшку (javascript я не сама писала, это готовый скрипт, который прилагался к аплоадеру, я только правлю и пытаюсь связать с РНР). Мне надо, чтобы в цикле подгружались флэшки под разными номерами ($n в скрипте). Просто когда РНР пишет название файла в ява-скрипте напрямую, без участия переменной ( "imgUpload_p1.swf" ), то всё работает. Когда же при помощи переменной (" imgUpload_p".$n.".swf" ), где $n=1 - то не работает. Хотя в обоих вариантах в исходном варианте в хтмл-е выглядит абсолютно одинаково.
     
  22. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    понятно, а может просто картинки циклом проще будет выводить?
    или взять другую галерею
     
  23. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Мне не картинки выводить, а флэш-аплоадер. Картинки выводятся без проблем. Это всё я вокруг памяти кручусь. Если бы сделать аплоадер на голом РНР, то это вообще элементарно, в том же цикле. Да у меня так и было всё. Но поскольку большие файлы сервер не принимает, то я меняю сейчас РНР-шный аплоадер на флэшовый. А он вставляется ява-скриптом, в котором я ни бум-бум, как и в экшн-скрипт. Поэтому подправить в них с уверенностью могу только явное: цифры, урлы, остальное пока не решусь. Тут мне надо всего-то передать в ява-скрипт переменную цикла из РНР. И вроде как она передаётся, потому что в коде хтмл всё идеально, значение переменной вписано в название файла. Но не работает! А точно такой же код, но без переменной цикла (то есть, вместо $n я сразу пишу её цифровое значение) - работает.

    Я, наверное, запутанно объясняю. Попытаюсь в схеме показать.
    Короче, начинается цикл в РНР:

    Код (Text):
    1.  
    2. for ($i=0; $i<$rownum; $i++) {
    3. $n = $i+1;
    4.  
    5. ..............////////////// тут не имеющий отношения к проблеме код
    6.  
    7. //////////// а тут пошёл JavaScript
    8.  
    9. echo "<script type="text/javascript">\n";
    10.  
    11. ............. //////////// опять-таки не относящийся к делу код JavaScript
    12.  
    13. echo "swfobject.embedSWF("swf/imgUpload_p".$n.".swf", "flashHolder", "100%", "100%", "10.0.0", false, flashvars, params, attributes);\n"; /// вот в этой строчке $n используется в имени файла
    14.  
    15. echo "</script>\n";
    16. }
    Так вот, в хтмл эта строчка выглядит как надо : swfobject.embedSWF("swf/imgUpload_p1.swf", "flashHolder", "100%", "100%", "10.0.0", false, flashvars, params, attributes); при условии, что $n = 1 (это первый цикл). Но флэшка не грузится! А если я пишу без переменной $n, то есть сразу имя файла "imgUpload_p1.swf", то всё подгружается. При этом хтмл-код в обоих случаях выглядит одинаково.
     
  24. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    у меня башка не варит, не спал еше сегодня, можно весь код этого цикла?
     
  25. Аngl

    Аngl Активный пользователь

    С нами с:
    16 ноя 2010
    Сообщения:
    46
    Симпатии:
    0
    Да весь код ничего не даст, там табличка прорисовывается и значения из сессии вписываются - всё. Могу привести, конечно, но главное я выше написала, остальное отношения к делу не имеет:

    PHP:
    1. <?php
    2. for ($i=0; $i<$rownum; $i++) {
    3.         $n = $i+1;
    4.         echo "<tr>\n";
    5.         echo "<td class="paragraf">";
    6.         echo "<input type=checkbox  name="row";
    7.         echo $n;
    8.         echo ""></td>\n";
    9.         echo "<td class="space_text">";
    10.         echo "<table align="center" width=100% border="0" cellspacing="0" cellpadding="0">\n";
    11.         echo "<tr height="200">\n";
    12.         echo "<td class="space_text" width="210">";
    13.         if ($_SESSION['plc_indhold'][$i]['paragrafNo']%2!=0){
    14.                 echo "<img class="billed_ramme" src="/images/indflytning/".$_SESSION['plc_indhold'][$i]['picture']."" /><br />\n";
    15.                
    16.                 ////////////////////////////// start of JavaScript
    17.                
    18.                 echo "<script type="text/javascript">\n";
    19.                 echo "var flashvars = {};\n";
    20.                 echo "flashvars.path = "http://localhost/plc/";\n";
    21.                 echo "var params = {};\n";
    22.                 echo "params.menu = "false";\n";
    23.                 echo "params.scale = "noscale";\n";
    24.                 echo "params.salign = "tm";\n";
    25.                 echo "var attributes = {};\n";
    26.                 echo "attributes.align = "middle";\n";
    27.                 echo "swfobject.embedSWF("swf/imgUpload_p".$n.".swf", "flashHolder", "100%", "100%", "10.0.0", false, flashvars, params, attributes);\n";
    28.                 echo "</script>\n";
    29.                
    30.                 ////////////////////////////// end of JavaScript
    31.            
    Ну, и дальше там цикл продолжается, это неважно. Тут я явно не въезжаю в тему, как ява-скрипт работает, потому что в хтмл-коде всё написано правильно (название флэш-файла "imgUpload_p1.swf" выводит без ошибок). То есть, браузер читает, как надо - а ява-скрипт не находит этот файл. Хотя если вписать название файла напрямую, без переменной, то подгружает.

    Я, кстати, тоже ещё не ложилась, всё с этим гамном вожусь. Уже и так, и сяк, и наперекосяк - а оно как упёрлось - и ни с места. Всё, сил уже нет, пошла баиньки.