Перейти к содержимому


Загрузка и отображение файлы вычислением в подтаблице


Сообщений в теме: 3

#1 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 156 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 10 Май 2014 - 17:54

$line['Ссылка на картинку'] = $srcImgUrl;
//Получаем расширение файла из юрл
	$typeFile = substr($srcImgUrl, strrpos($srcImgUrl, ".") + 1);
//Получаем имя файла из юрл
	$nameFile = rand(0, 333).substr($srcImgUrl, strrpos($srcImgUrl, "/") + 1);
//генерируем имя временного файла
	$path_tmp_name = "temp/" . get_file_hash($field_id, $line_id, $nameFile);
//Создаем дескриптор по указанному файлу.
	$fp = fopen($path_tmp_name, 'w+');
//Качаем файл по ссылке.
	$ch = curl_init($srcImgUrl);
	curl_setopt($ch, CURLOPT_FILE, $fp);
	$data = curl_exec($ch);
	curl_close($ch);
	fclose($fp);
//Определяем путь к загружаему файлу в КБ
	$file_path = get_file_path(491, $line['ID'], $nameFile);
//Создаем необходимую структуру директорий
	create_data_file_dirs(491, $line['ID'], $nameFile);
//Копируем скаченный файл
	copy($path_tmp_name, $file_path);
//удаляем временный файл
	unlink($path_tmp_name);
	$line['Фото товара'] = $nameFile;
// Формируем предпросмотр изображения в папке cache
	$cur_line = $line;
	$cur_table = $table;
	$cur_field = get_table_fields($table);
	$cur_field = $cur_field[491];
	$t = form_display_type($cur_field, $cur_line);

Есть вот такой код, вчера работал. А сегодня уже http://prntscr.com/3hxh7h. Если нажать на это - в новой вкладке фото открывается как положено. То есть оно есть. При этом обновляю страницу и миниатюру показывает норм. Где промах?

Сообщение отредактировал wondertalik: 10 Май 2014 - 17:57


#2 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 156 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 11 Май 2014 - 14:24

Вообщем разобрался, видно баг. Ответ от сервера когда появляться квадратик изображения как на выше на скрине.
Remote Address:144.76.36.47:443
Request URL:https://tao.clientbase.ru/cache/11_491_44875_89T1Z7gMXihcXXXXXXXX__0_item_pic_jpg_460x460_jpg.png
Request Method:GET
Status Code:404 Not Found
Хотя в кеше формируется файл 11_491_44875_89T1Z7gMXihcXXXXXXXX_0_item_pic_jpg_460x460_jpg.png (разница в __ после XXXXXXXX). Реальное имя файла T1Z7gMXihcXXXXXXXX_!!0-item_pic.jpg_460x460.jpg

Сообщение отредактировал wondertalik: 11 Май 2014 - 14:26


#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Май 2014 - 08:35

При формировании имени в кэше все символы заменяются на "_". Но если в итоге они идут подряд (например, два: "__"), то дополнительно заменяются на один.

#4 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 156 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 12 Май 2014 - 11:27

Просмотр сообщенияCbCoder (12 Май 2014 - 08:35) писал:

При формировании имени в кэше все символы заменяются на "_". Но если в итоге они идут подряд (например, два: "__"), то дополнительно заменяются на один.
В кэше формируется одно имя файла, а при отображении ссылка немного другая и только перезагрузка страницы меняет ссылку на превью правильную.





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных