第二百七十二回

文章目录

  • 1. 概念介绍
  • 2. 方法与类型
    • 2.1 使用方法
    • 2.2 常见类型
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"如何加载本地图片"相关的内容,本章回中将介绍如何获取文件类型.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在本章回中提到的文件类型是指MIME描述的类型,我们主要介绍如何获取这些类型。有些看官可能还不清楚MIME的概念,下面是我从摘自mazilla网站的信息,请
大家参考:媒体类型(也通常称为多用途互联网邮件扩展或MIME类型)是一种标准,用来表示文档、文件或一组数据的性质和格式。它在 IETF 的 RFC 6838中进行
了定义和标准化。互联网号码分配局(IANA)负责跟踪所有官方 MIME 类型,你可以在媒体类型页面中找到最新的完整列表。
MIME 类型通常仅包含两个部分:类型(type)和子类型(subtype),中间由斜杠 / 分割,中间没有空白字符:type/subtype
类型代表数据类型所属的大致分类,例如 video 或 text。子类型标识了 MIME 类型所代表的指定类型的确切数据类型。以 text 类型为例,它的子类型
包括:plain(纯文本)、html(HTML 源代码)、calender(iCalendar/.ics 文件)。每种类型都有自己的一组可能的子类型。一个 MIME 类型总是包含类型
与子类型这两部分,且二者必需成对出现。我们所要获取的就是type/subtype。关于MIME的就介绍这些,大家可以官方网站查看更加详细的内容。

2. 方法与类型

2.1 使用方法

我们可以借助mime包来获取mime类型,该包是flutter官方提供的,下面是详细的使用步骤:

  • 添加包到到yaml配置文件,并且从网上拉取包中的内容到本地项目中;
  • 使用lookupMimeType()方法获取MIME类型;

2.2 常见类型

下面是我从官方网站截取的类型图,里面包含常见的文件类型:

在这里插入图片描述

3. 示例代码

String? mime = lookupMimeType(_mediaFileList![index].path);
if(mime.startsWith('image/') {debugPrint("it is image");
}///下面代码是官方给的示例代码
print(lookupMimeType('test.html'));
// text/htmlprint(lookupMimeType('test', headerBytes: [0xFF, 0xD8]));
// image/jpegprint(lookupMimeType('test.html', headerBytes: [0xFF, 0xD8]));
// image/jpeg
}

上面的示例代码演示了如何获取文件的MIME类型,以及如何通过类型来识别文件。代码中还有一部分来自官方文档,我们在代码中通过注释来说明代码出处。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • 我们主要介绍了MIME的概念和常见文件类型;
  • 官方提供了mime包来获取文件的mime类型;
  • 使用包中的lookupMimeType()接口可以获取文件类型;
    看官们,与"如何获取文件类型"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的消息队列和中间件都有哪些

常用的消息队列和中间件有以下几种: RabbitMQ:RabbitMQ是一个开源的消息队列中间件,使用Erlang语言编写。它具有可靠性、灵活性和易用性的特点,支持多种消息协议。 Kafka:Kafka是一个高吞吐量的分布式发布订阅消息系统…

23.实战演练--个人主页

<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><applicationandroid:allowBackup"true"an…

【项目实战】Postgresql数据库中出现锁表如何解决

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项目…

Unity之触发器

目录 &#x1f4d5;一、触发器概念 &#x1f4d5;二、碰撞与触发的区别 &#x1f4d5;三、触发器小实例 一、触发器概念 第一次玩侠盗猎车手是在小学&#xff0c;从那以后就开启了我的五星好市民之路。 下面是小编在小破站截的图&#xff0c;这是罪恶都市最开始的地方&a…

MCU和MPU有什么区别

大家好&#xff0c;今天给大家介绍MCU和MPU有什么区别&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 MCU&#xff08;Microcontroller Unit&#xff09;和MPU&#xff08;Micro…

Rust类型之数组和动态数组

数组动态数组类型arrayVec&#xff08;Vector&#xff09;&#xff0c;向量作用存储同一类型的多个值存储同一类型的多个值表示数组表示成[T; N]&#xff0c;由中括号括起来&#xff0c;中间用分号隔开&#xff0c;分号前面表示类型&#xff0c;分号后面表示数组长度。Vec<类…

蓝桥杯备赛 day 2 —— 二分算法(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 二分的概念 &#x1f4c1; 整数二分 &#x1f4c1; 二分的模板 &#x1f4c1; 习题 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文章主要是准备蓝桥杯竞赛同学所写&#xff0c;为你更好准备蓝桥杯比赛涉及…

从0到1:实验室设备借用小程序开发笔记

概论 实验室设备借用小程序&#xff0c;适合各大高校&#xff0c;科技园区&#xff0c;大型企业集团的实验室设备借用流程, 通过数字化的手段进一步提升相关单位设备保障水平&#xff0c;规范实验室和设备管理&#xff0c;用户通过手机小程序扫描设备的二维码&#xff0c;可以…

深入解析:如何使用Java、SpringBoot、Vue.js和MySQL构建课表管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

VS代码生成工具ReSharper v2023.3正式发布——支持C# 12

实质上&#xff0c;ReSharper特征可用于C#&#xff0c;VB.net&#xff0c;XML&#xff0c;Asp.net&#xff0c;XAML&#xff0c;和构建脚本。 使用ReSharper&#xff0c;你可以进行深度代码分析&#xff0c;智能代码协助&#xff0c;实时错误代码高亮显示&#xff0c;解决方案范…

STM32 定时器输入捕获3——捕获超长高电平

第一章&#xff1a;https://blog.csdn.net/m0_73671341/article/details/134773615?spm1001.2014.3001.5501 第二章&#xff1a;https://blog.csdn.net/m0_73671341/article/details/134938332?spm1001.2014.3001.5501 从第一章的定时器捕获我们可以知道&#xff0c;即使把定…

杂记:使用 mac 和 windows 以及编辑器的总结

Chrome 扩展 Grammarly 语法检查 DM Integration Module idm 下载扩展 JSON Formatter json 格式化查看 uBlock Origin Ad block 油猴 任意网站都可以使用的脚本管理工具 Mac 快捷键整理 截图到剪贴板 shift command control 4 (不按 shift 存储为文件) 切换输入法…

JavaScript基础(27)_内联样式的获取和修改、获取元素当前显示的样式

内联样式的获取和修改 获取元素的内联样式&#xff1a; 语法&#xff1a;元素.style.样式名 注意&#xff1a;通过style属性设置和读取的都是内联样式&#xff0c;无法读取样式表中的样式。 修改元素的内联样式&#xff1a; 语法&#xff1a;元素.style.样式名 样式值比如…

子文件夹中一个.py文件导入父文件夹中某个.py文件

虽然各种Python语言编程书籍中一再强调&#xff0c;自从Python 3.3版本后&#xff0c;构建Python的Package结构&#xff0c;不用在每个文件夹下添加__init__.py文件。上面这句话&#xff0c;仅仅针对的是从主文件夹中的主要.py来导入各个子文件夹的模块结构来说的。自己亲自试验…

并发编程之深入理解AQS

目录 什么是AQS&#xff1f; AQS的特性 AQS总结 什么是AQS&#xff1f; java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为&#xff0c;比如等待队列、条件队列、独占获取、共享获取等&#xff0c;而这些行为的抽象就是基于AbstractQueuedSynchronizer&a…

WordPress后台仪表盘自定义添加删除概览项目插件Glance That

成功搭建WordPress站点&#xff0c;登录后台后可以在“仪表盘 – 概览”中看到包括多少篇文章、多少个页面、多少条评论和当前WordPress版本号及所使用的主题。具体如下图所示&#xff1a; 但是如果我们的WordPress站点还有自定义文章类型&#xff0c;也想在概览中显示出来应该…

【经验分享】美赛报名以及注册方法-以2024年美赛为例

1 进入美赛官网 首先点击COMAP的官网链接&#xff1a; https://www.comap.com/然后选择Contests目录下的MCM/ICM 选择 Learn More and Register 然后选择 register for contest 接下来开始注册环节&#xff0c;注册分为两个步骤&#xff1a;顾问&#xff08;指导教师&#xf…

Jsqlparser简单学习

文章目录 学习链接模块访问者模式parser模块statement模块Expression模块deparser模块 测试TestDropTestSelectTestSelectVisitor 学习链接 java设计模式&#xff1a;访问者模式 github使用示例参考 测试 JSqlParser使用示例 JSqlParse&#xff08;一&#xff09;基本增删改…

力扣(leetcode)第819题最常见的单词(Python)

819.最常见的单词 题目链接&#xff1a;819.最常见的单词 给你一个字符串 paragraph 和一个表示禁用词的字符串数组 banned &#xff0c;返回出现频率最高的非禁用词。题目数据 保证 至少存在一个非禁用词&#xff0c;且答案 唯一 。 paragraph 中的单词 不区分大小写 &…

MCU 是指微控制器单元(Microcontroller Unit)

MCU 是指微控制器单元&#xff08;Microcontroller Unit&#xff09;。 微控制器是一种集成了处理器核心、存储器、输入/输出接口和其他外围设备的集成电路。它通常用于嵌入式系统中&#xff0c;负责控制和执行特定任务&#xff0c;例如控制家电、汽车电子、工业自动化等。 M…