Delphi 10.2.3 新增的TMimeTypes类
Delphi 10.2.3 新增的TMimeTypes类,利用url中的文件扩展名,可以轻松得到url需要返回的HTTP content-type类型,可以参考这里,现在查看AddDefTypes方法,几乎涵盖了所有的文件类型。为了使用TMimeTypes,我们不必建立他的实例,直接使用TMimeTypes.Default属性,这个属性是个类属性,可以直接使用并返回TMimeTypes的实例。
class property Default: TMimeTypes read GetDefault;
这是GetDefault的实现代码,通过代码,我们看到,返回一个唯一实例。
class function TMimeTypes.GetDefault: TMimeTypes;
var
LMime: TMimeTypes;
begin
if FDefault = nil then
begin
TMonitor.Enter(FLock);
try
if FDefault = nil then
begin
LMime := TMimeTypes.Create;
LMime.AddDefTypes;
LMime.AddOSTypes;
FDefault := LMime;
end;
finally
TMonitor.Exit(FLock);
end;
end;
Result := FDefault;
end;
下面,看看一个扩展名,对于一个url应返回内容的类型(HTTP content-type):
procedure TForm10.Button1Click(Sender: TObject);
var
t:string;
kind:TmimeTypes.TKind;
begin
TMimeTypes.Default.GetExtInfo('htm',t,kind);
end;
运行后得到的结果:

有了TMimeTypes类,再也不用记该返回什么类型的url请求了!
此外,在这个System.Net.Mime单元中,还提供了其他重要意义的类,如TMultipartFormData,用来处理htm中的Form,支持文件的。
Delphi 10.2.3 新增的TMimeTypes类的更多相关文章
- Delphi 10.2 Tokyo新增JSON类学习——TJsonSerializer
Delphi 10.3.2 for windows 7 编译通过,源码下载地址: Tokyo 10.2新增类,效率更高更快 TJsonSerializer 需要引用单元:System.JSON.Ser ...
- Delphi 10.3实现Android App的动态权限申请
Delphi 10.3 RIO发布近两个月,针对Google Play的要求,完美实现了对Android 8的支持,即对Android API Level 26的支持.这支持当中,最主要的得算是动态申 ...
- kbmMW TkbmMWHashSHA256与Delphi 10.2 THashSHA2算出相同的结果
procedure TForm2.Button3Click(Sender: TObject); var hashed:string; begin hashed:=TkbmMWHashSHA256.Ha ...
- Delphi 10.2可以开发Linux桌面应用了
原始地址 https://community.embarcadero.com/blogs/entry/firemonkey-on-linux Delphi Linux编译器已经发布,现在无需等待 ...
- Delphi 10.2 Tokyo的新特性
Delphi 10.2(Tokyo)出来一段时间了,最重要的新特性就是支持Linux的服务端. 官网有详细的介绍: 这里是主要的特性介绍:https://www.embarcadero.com/pro ...
- Delphi 10.2 JSON与对象/结构体序列化性能提高100多倍
今天在盒子闲逛,无意中看到有人说XE7自带的Json对象序列化很慢,帖子在这里:http://bbs.2ccc.com/topic.asp?topicid=464378;经过测试的确如此. 但 ...
- 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing
[源码下载] 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing 作者:webabcd 介绍背水一 ...
- 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch
[源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...
- 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
[源码下载] 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(选择类) Sel ...
随机推荐
- 为什么一刷新页面session没了
最常见的的原因: session_start(); 没有放在文件最上面……
- http.cof
## This is the main Apache HTTP server configuration file. It contains the# configuration directives ...
- leetcode-algorithms-1 two sum
leetcode-algorithms-1 two sum Given an array of integers, return indices of the two numbers such tha ...
- BIT-区间修改单点查询
正好刷题时碰到了这个之前遇到过的问题,类似的还有区间修改区间查询,以后学了会补上. 我们知道BIT只支持单点修改区间查询,如果现在问题变成每次让一个区间的数同时变化,然后询问的是某一个点得值的时候该怎 ...
- AWR报告学习示例
1. 参数1 AAS AAS讲解 elapsed 为 该AWR性能报告的时间跨度 DB_TIME =所有前台session花费在database调用上的总和时间. 注意:前台进程 foregrou ...
- PAT 1015 Reversible Primes
1015 Reversible Primes (20 分) A reversible prime in any number system is a prime whose "rever ...
- 函数使用二:采购申请BAPI_PR_CREATE
REPORT YTEST01. ***************************采购申请创建*****************************begin DATA:LV_BANFN TY ...
- Hive的JDBC
Hive 的JDBC 包含例子 https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-JDBC HiveServ ...
- [转载]Python3编码问题详解
原文:Python3的编码问题 Python3 最重要的一项改进之一就是解决了 Python2 中字符串与字符编码遗留下来的这个大坑.Python 编码为什么那么蛋疼?已经介绍过 Python2 字符 ...
- oracle 常用字符串函数
select initcap('guodongdong') from dual; /返回字符串并将字符串的第一个字母变为大写; s ...