Jump to content

Пропали дополнительные картинки некоторых товаров


Recommended Posts

Добрый день, друзья!

 

Возникла проблема.

Ранее пропали дополнительные картинки некоторых товаров. Оказалось, что объем Хостинга исчерпан. Но даже после увеличения объема Хостинга ничего не изменилось.

 

В чем может быть проблема и как решить?

 

Спасибо за любую информацию!

Link to post
Share on other sites

они каким образом пропали?битые ссылки стали?эти доп фото есть в папке originals? если присутствуют и их размер 0 то ток перезаливать.

Link to post
Share on other sites

чистка files/products не помогло ((

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

если их не много, можно было бы заново загружать картинки

Link to post
Share on other sites

Вам уже давали выше совет, как проверять:

эти доп фото есть в папке originals?

если присутствуют и их размер 0?

 

Если совсем автоматически хотите, то спец средствами, например:

http://simpla-tuning.com/products/izobrazheniya-kontrolkartinok

Link to post
Share on other sites

Мдя, а я такой скрипт бесплатно на форуме выкладывал, для проверки картинок в обе стороны (если картинка есть в папке но нет в базе - почистить папку. сделай себе такое еще, полезно бывает)

Link to post
Share on other sites
	public function checkimgs()
	{
 				 
			$this->db->query('SELECT * FROM `s_images`');
			$imgs = $this->db->results();
			 
			foreach ($imgs as $img)
			{
				$nfn = getcwd() . "/files/originals/" . $img->filename;
			 
				if ( !file_exists($nfn) )
				 		$this->db->query('DELETE FROM `__images` WHERE filename = ?', $img->filename );
			}
			
  
		return true;
	}

 

Лень искать. Ну согласитесь элементарный код же? Это из разряда проверить по базе.

 

public function checkimgs()
	{
				$query = $this->db->placehold("SELECT filename FROM __images");
				$this->db->query($query);

				$imgs = $this->db->results();
				foreach ($imgs as $im)
				{
                                    $nfn = getcwd() . "/files/originals/" . $img->filename;
                                    if ( !file_exists($nfn) )
                                        {
                                              $this->db->query('DELETE FROM `__images` WHERE filename = ?', $img->filename );
                                        }
                                    else
				        $newimgs[] = $im->filename;
				}
			             $mask = "files/originals/*.*"; # Задаем маску поиска  			
			             $arr = glob($mask);
			             foreach($arr as $ar)
			             {
				        $arstr = str_replace("files/originals/","",$ar);
				        if (!in_array($arstr,$newimgs))
					   unlink($ar);
			}

		return true;
	}

А это с обратной проверкой.

Link to post
Share on other sites

Сейчас у Вас в коде сделано удаление несоответственных вхождений.

 

Если Вам все это так элементарно, то, может, добавите еще функционала полезного?  Например:

1. Список записей в базе, для которых нет картинок.

2. Список картинок, для которых нет записей в базе.

3. Чтоб просматривались комфортно оба списка, с уцелевшими данными, со ссылками на страницы редактирования.

4. Хорошо бы учесть случаи, когда размер графического файла 0.

5. Удалять данные не сразу, а по отдельной команде, желательно даже выборочно.

 

Ведь цель ТС не в том, чтобы удалить несоответствия, а в том, чтобы восстановить испорченные данные.

Link to post
Share on other sites
  • 7 months later...

Sheeft , если не сложно, скажите пожалуйста, куда это все вставить, чтобы провести проверку?!

 

DarAmal, я столкнулся с похожей проблемой. Вы разобрались куда вставить код Sheeft, чтобы провести эту проверку?!

Link to post
Share on other sites

к сожалению нет. проверку не смог выполнить

 

DarAmal, очень жаль.

А еще кто нибудь разбирается в этом и может помочь?

Кто понимает куда нужно вставить код Sheeft, что бы осуществить проверку изображения на его наличие в папке originals и удалить его из базы данных, если изображения в папке нет?

 

Edited by Scodch
Link to post
Share on other sites

DarAmal, очень жаль.

А еще кто нибудь разбирается в этом и может помочь?

Кто понимает куда нужно вставить код Sheeft, что бы осуществить проверку изображения на его наличие в папке originals и удалить его из базы данных, если изображения в папке нет?

 

 

у функции нет параметров. вы можете просто вставить ее в api/Image.php

и вызывать эту ф-ю в админке на какой-то странице, настроек например через

$this->image->checkimgs(); 

привязав ее к кнопке.

Edited by mishanya
Link to post
Share on other sites
  • 1 year later...

Добрый день. Прошу помощи у разработчиков. Я перенесла сайт с поддомена на основной домен и картинки все пропали. Где и что мне поправить? Поделитесь, пожалуйста опытом. Спасибо большое.

Link to post
Share on other sites

Во-первых, нужно проверить свободное место на хостинге.

Потом проверить наличие библиотек GD или imagik на хостинге.

Потом наличие оригиналов картинок в папке files/originals

Если не поможет - пишите в скайп kosjak1976 (недорого)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...