Загрузка и обработка картинок посредством PHP

S
На сайте с 15.12.2009
Offline
67
1261

Здравствуйте, столкнулся с проблемой когда в одно время загружались и обрабатывались 2 картинки, в итоге только одна из них загрузилась и обработалась. В базе время добавляния 2010-08-09 11:42:51 у обоих. Сталкиваюсь уже 3й раз с этой проблемой, в чем может быть проблема? Может както в очередь поставить? или? обрабатываю в imagick.

SI
На сайте с 19.12.2007
Offline
77
#1

или гуглить особенности imagick, если таковые по сабжу имеются, или все-таки код в студию...

последнее, судя по кол-ву ответов, более вероятно поможет (:

рисуем, верстаем, кодим и крутим ...аа, да, еще принимаем заказы (:
t0os
На сайте с 25.02.2008
Offline
64
#2

Как обрабатываете? Код в студию.

S
На сайте с 15.12.2009
Offline
67
#3

$im3 = new imagick($_FILES['myfile']['tmp_name']);

$im3->setImageFormat( "jpg" );

$im3->setImageCompressionQuality(95);

$im3->writeImage( "images/name.jpg" );

и еще 3 похожих, создавая превью.

[Удален]
#4
speen:
$im3 = new imagick($_FILES['myfile']['tmp_name']);
$im3->setImageFormat( "jpg" );
$im3->setImageCompressionQuality(95);
$im3->writeImage( "images/name.jpg" );

и еще 3 похожих, создавая превью.

name случаем не через time() задаете ? 🚬

S
На сайте с 15.12.2009
Offline
67
#5
Soulwest:
name случаем не через time() задаете ? 🚬

Нет, через аутоинкримент ID)

speen добавил 10.08.2010 в 00:33

просто получается что если одновременно подать 2 картинки то какогото фига одна из них не обрабатывается(

firefox19
На сайте с 05.11.2009
Offline
34
#6

попробуйте задавать имя рандомной строкой

Ваши идеи - наша работа (http://yaweb.ru) Продам Сайт агентства недвижимости (/ru/forum/561489)
K
На сайте с 06.07.2009
Offline
11
#7

Если я правильно понимаю, то проблема в том что сервер загружая картинки создает временные файлы с одинаковым именем. Вот и получается что из двух загружается только одна. Надо смотреть как сервер дает временные имена файлов. И возможно привязать их к сессии пользователя загружающего их.

Или вы имеете в виду случай когда загружается несколько файлов одним пользователем, через одну форму загрузки?

Тот участок кода который вы показываете недостаточен.

juniorspecialistphp
На сайте с 08.08.2010
Offline
25
#8

Как говорилось уже выше используйте имя для файлов при загрузке на сервер "уникальное" - например, md5(time($name_file)) - должно помочь.

Пишу скрипты любой сложности на РНР. (http://elagin.su)
B
На сайте с 14.07.2010
Offline
36
#9

а если попробовать работать не с временными файлами? А с нормально перемещенными. ну и какбе вы не забывайте про структуру массива $_Files, возможно в к нему не правильно обращаетесь. Куска кода приведённого здесь мало. весь бы..

K
На сайте с 06.07.2009
Offline
11
#10
juniorspecialistphp:
Как говорилось уже выше используйте имя для файлов при загрузке на сервер "уникальное" - например, md5(time($name_file)) - должно помочь.

пример просто жесть

Bermuda:
а если попробовать работать не с временными файлами? А с нормально перемещенными.

это как? Я знаю такой способ. На сервер отсылается файл, сервером ему присваивается уникальное имя и он помещается в tmp директорию, информация о нем помещается в массив $_FILES, используя эти данные файл можно обработать и переместить в нужное место. Если вам известен какой-то другой способ поделитесь пожалуйста.

З.Ы. Посмотрел ещё раз ваш код и возник вопрос по вот этой строке:

$im3->writeImage( "images/name.jpg" );

Вы случайно не всем ли файлам присваиваете одно и тоже имя name.jpg?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий