Я пытаюсь получить Mime-тип из расширения, например .html
должен вернуть text/html
. Я знаю, как получить Mime с доступным файлом, но не другим способом. Есть ли способ запросить mime из расширения, по крайней мере, известных?Получить тип Mime из расширения файла
ответ
вам нужно использовать GContentType
внутри ПИБ:
https://developer.gnome.org/gio/stable/gio-GContentType.html
и быть точным g_content_type_guess()
:
https://developer.gnome.org/gio/stable/gio-GContentType.html#g-content-type-guess
который принимает либо имя файла, либо его содержимое файла, и возвращает предполагаемый тип контента; оттуда вы можете использовать g_content_type_get_mime_type()
, чтобы получить тип MIME для типа контента.
это пример того, как использовать g_content_type_guess()
:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <gio/gio.h>
int
main (int argc, char *argv[])
{
const char *file_name = "test.html";
gboolean is_certain = FALSE;
char *content_type = g_content_type_guess (file_name, NULL, 0, &is_certain);
if (content_type != NULL)
{
char *mime_type = g_content_type_get_mime_type (content_type);
g_print ("Content type for file '%s': %s (certain: %s)\n"
"MIME type for content type: %s\n",
file_name,
content_type,
is_certain ? "yes" : "no",
mime_type);
g_free (mime_type);
}
g_free (content_type);
return EXIT_SUCCESS;
}
однажды скомпилирован, выход на Linux является:
Content type for file 'test.html': text/html (certain: no)
MIME type for content type: text/html
объяснение: на Linux, тип контента, тип MIME ; это неверно на других платформах, поэтому вы должны преобразовать строки GContentType
в тип MIME.
также, как вы можете видеть, только с помощью расширения будет установлено значение boolean не определено флаг, поскольку само расширение недостаточно для определения точного типа содержимого.
- 1. Laravel 5 - получить MIME-тип из расширения файла
- 2. Получите MIME-тип из расширения в C++
- 3. Android - Получите MIME-тип из файла без расширения
- 4. Получить MIME-тип локального файла в PHP5 без расширения PECL?
- 5. Получить MIME-тип из имени файла в C
- 6. Определение MIME Тип файла загрузки MAC-файла
- 7. Получить тип Mime от NSURL
- 8. Получить тип mime в Laravel удаленного файла
- 9. Как получить MIME-тип файла .MSG?
- 10. Как получить MIME Тип файла для загрузки?
- 11. Как получить MIME-тип файла в Qt?
- 12. Найти MIME-тип для изображения без расширения
- 13. Получить тип файла из содержимого, а не от расширения
- 14. Настройка MIME тип файла из web.config
- 15. Получить MIME-тип URL
- 16. Java - Как получить тип mime файла из его потока?
- 17. Javascript: Как получить .tgz MIME-тип из ввода HTML-файла?
- 18. Получить MIME-тип с помощью Scrapy
- 19. Как проверить тип файла MIME
- 20. Как получить тип носителя из MIME-типа?
- 21. Используется ли тип файла для расширения файла?
- 22. Получить тип файла без расширения C#
- 23. Получить тип Mime из файла Где тип файла не известен в C#
- 24. Получить тип файла на основе расширения vb.net
- 25. Получить тип mime для MediaSource.isTypeSupported
- 26. Получить MIME-тип через PHP
- 27. Ruby get mime-type на основе расширения
- 28. Признать мой тип mime без расширения файлов на iOS
- 29. Как получить mime-тип файлов p7s?
- 30. Получить ImageFormat из расширения файла
который потребует, чтобы файл был справа? Я знаю, что прошу не так часто, но я хотел знать типы mime для известных типов файлов. Я мог бы анализировать /etc/mime.types, но я предпочел бы использовать библиотеку, которая делает это. Спасибо за отличный пример. –
нет, он не требует наличия файла: вам просто нужно его имя. Кроме того, /etc/mime.types совершенно бессмысленна для любого современного Linux: вам нужна база данных shared-mime-info, которая является частью freedesktop.org: http://freedesktop.org/wiki/Software/shared-mime- info/ – ebassi
, поэтому я могу поместить любое фиктивное имя, например dummy.html? Это то что мне нужно. Я соглашусь это сейчас! –