SASGIS - SAS.Планета
View Issue Details
0003916SAS.Планета[All Projects] Багpublic27-06-2025 08:4127-06-2025 12:17
VadimK 
zed 
normalminoralways
closedno change required 
Windows7Professional
250505 
 
0003916: Не сохраняется тайл, если поле content-type в "HTTP response header" содержит ";charset=UTF-8"
При скачивании тайла (посредством передачи ссылки на тайл переменной ResultURL в скрипте) если в заголовке ответа на HTTP-запрос в поле content-type присутствует дополнительно строка ";charset=UTF-8" (например: "content-type: image/png;charset=UTF-8"), то такой тайл не сохраняется на диск.
Прописывание в param.txt реального значения (ContentType=image/png;charset=UTF-8) не помогает.

Но по содержимому переменной ResponseHead видно, что тайл всё же скачивется, но на диск не сохраняется.

Такое впечатление, что программа не распознаёт ContentType должным образом.

Скачивание через Downloader.DoHttpRequest работает без проблем.

Временное решение проблемы: в param.txt:
* убрать ContentType,
* добавить его игнорирование (IgnoreContentType=1),
* добавить ContentType по-умолчанию (DefaultContentType=image/png).
в теме на форуме: https://www.sasgis.org/forum/viewtopic.php?f=47&t=3719
PascalScript, utf-8
related to 0000437closed vdemidov Добавить поддержку ContentType=image/png8bit и image/png8tr 
Issue History
27-06-2025 08:41VadimKNew Issue
27-06-2025 08:50VadimKTag Attached: PascalScript
27-06-2025 08:51VadimKTag Attached: utf-8
27-06-2025 09:27zedSummary[PascalScript] не сохраняется тайл, если поле content-type в "HTTP response header" содержит ";charset=UTF-8" => Не сохраняется тайл, если поле content-type в "HTTP response header" содержит ";charset=UTF-8"
27-06-2025 09:34zedNote Added: 0020549
27-06-2025 09:39zedRelationship addedrelated to 0000437
27-06-2025 10:40VadimKNote Added: 0020550
27-06-2025 12:15zedNote Added: 0020552
27-06-2025 12:17zedStatusnew => closed
27-06-2025 12:17zedAssigned To => zed
27-06-2025 12:17zedResolutionopen => no change required

Notes
(0020549)
zed   
27-06-2025 09:34   
Во-первых, это не имеет никакого отношения к PascalScript.

Во-вторых, есть жёстко заданный список Content-Type которые SAS понимает и знает что с ними делать: https://sasgis.github.io/zmp-params-txt.html

Для всех остальных типов, можно либо поступить как вы сделали, либо использовать MimeTypeSubst для указания, что на что надо заменить. Для вашего случая можно было бы прописать так:

ContentType=image/png;charset=UTF-8
MimeTypeSubst="""image/png;charset=UTF-8""=image/png"
(0020550)
VadimK   
27-06-2025 10:40   
Спасибо! Ваш пример прекрасно работает.

Кстати, такую замену можно было бы на странице параметров params.txt как хороший пример для подстановки MimeTypeSubst разместить, потому как мало кто догадается, как правильно кавычки внутри кавычек экранировать.

И для MimeTypeSubst указать, что в левой части выражения должен быть ожидаемый ContentType, а в правой - поддерживаемый программой ContentType (из таблицы). Такое описание лично мне было бы понятней того, что там сейчас. :)


ЗЫ: Кстати, проверил третий вариант: с использованием DetectContentType=1 - тоже рабочий!
(0020552)
zed   
27-06-2025 12:15   
Да, в доки надо будет добавить пример.