powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Импорт картинок из Tecdoc
11 сообщений из 11, страница 1 из 1
Импорт картинок из Tecdoc
    #39051124
E_V_Geniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите разобраться!
При импорте картинок из базы Tecdoc все файлы получаются одинакового размера 20479 б.
Вот код
Код: php
1.
2.
3.
4.
5.
6.
$f=fopen("1.jpg","w");
$sql='SELECT * FROM TOF_GRA_DATA_5';
$result = odbc_exec($id, $sql);
odbc_longreadlen($result, 10485760);
$a=odbc_result($result,2);
fwrite($f,$a);


Тут на форуме у кого-то была подобная проблема http://www.sql.ru/forum/1040675/tecdoc-vygruzka-kartinok
Там было сказано, что "для odbc_longreadlen нужно еще установить odbc_binmode"

Экспериментировал с odbc_binmode - безрезультатно.
odbc.defaultlrl = 0 (так же указывал различные значения - не помогает).

Заранее спасибо!
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39051295
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odbc.defaultlrl=65536
?

там еще пара параметров была непомню уже каких.
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39052680
E_V_Geniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, Пробовал odbc.defaultlrl=65536. Вообще без результатов.
А какие параметры еще можно поменять? В настройках ODBC тоже ничего не нашел.
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39052729
E_V_Geniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заметил такую особенность, если убрать odbc_binmode($result, ODBC_BINMODE_CONVERT);, то файл получается размером 40960 , но шестнадцатиричный формат.
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39052999
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
E_V_Geniy,
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
$sql = 'SELECT * FROM TOF_GRA_DATA_5';                          // если полей не 100500 - желательно перечислять их явно
$resultset = odbc_exec($id, $sql);

odbc_longreadlen($resultset, 65536);                            // 64K 
odbc_binmode($resultset, ODBC_BINMODE_RETURN);                  // при odbc_longreadlen > 0 и odbc_binmode=ODBC_BINMODE_RETURN 
                                                                // большие поля передаются 'как есть'

// while (odbc_fetch_row($resultset)) {
if (odbc_fetch_row($resultset)) {   
   $fileHandle = fopen('1.jp2', 'wb');                          // формат файлов JPEG2000, не JPEG
                                                                // для использования в цикле - озаботиться уникальным именем !
   
   while (($chunk = odbc_result($resultset, 2)) !== false) {    // номер поля правильный? А то ведь можно и по имени запросить
      fwrite($fileHandle, $chunk);
   }   
   fclose($fileHandle);

} else {
    die('Вот и навыгружался картинок.');
}
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39054875
E_V_Geniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,
Нифига не работает. Размер файла по прежнему 20479
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39055235
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
E_V_Geniy,
файл покажи.
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39055957
E_V_Geniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища, вот такой файл получается 1.jp2
Вот исходник кода
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
$connect="DNS=TECDOC_CD_4_2014; Database=TECDOC_CD_4_2014;Server=localhost;Port=;UID=tecdoc;PWD=tcd_error_0";
$id=odbc_connect("Driver={Transbase ODBc TECDOC CD 4_2014};Server=localhost;Database=TECDOC_CD_4_2014;", "tecdoc", "tcd_error_0");

$sql = 'SELECT * FROM TOF_GRA_DATA_5';                          // если полей не 100500 - желательно перечислять их явно
$resultset = odbc_exec($id, $sql);

odbc_longreadlen($resultset, 65536);                            // 64K 
odbc_binmode($resultset, ODBC_BINMODE_RETURN);                  // при odbc_longreadlen > 0 и odbc_binmode=ODBC_BINMODE_RETURN 
                                                                // большие поля передаются 'как есть'

// while (odbc_fetch_row($resultset)) {
if (odbc_fetch_row($resultset)) {   
   $fileHandle = fopen('1.jp2', 'wb');                          // формат файлов JPEG2000, не JPEG
                                                                // для использования в цикле - озаботиться уникальным именем !
   
  $chunk = odbc_result($resultset, 2) ; // номер поля правильный? А то ведь можно и по имени запросить
      fwrite($fileHandle, $chunk);
   
   fclose($fileHandle);

} else {
    die('Вот и навыгружался картинок.');
}


Цикл выгрузки картинок убрал, что бы отладить работу на выгрузке одной катинки
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39055966
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
E_V_Geniy,
конверитруй свой 1.jp2 в jpg. Например в онлайн jp2 to jpg .
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39055976
E_V_Geniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,
ПОЛУЧИЛОСЬ!
Большое спасибо!
...
Рейтинг: 0 / 0
Импорт картинок из Tecdoc
    #39055977
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
E_V_Geniy,
пока не началось.
Замени своё "Цикл выгрузки картинок убрал"
Код: php
1.
2.
  $chunk = odbc_result($resultset, 2) ;
      fwrite($fileHandle, $chunk);


на
Код: php
1.
2.
3.
   while (($chunk = odbc_result($resultset, 2)) !== false) {
      fwrite($fileHandle, $chunk);
   }


Потому что это не "Цикл выгрузки картинок"
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Импорт картинок из Tecdoc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]