江南才子 发表于 2021-7-31 10:53:42

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,支持文件的。


文档来源:51CTO技术博客https://blog.51cto.com/u_15317185/3224739
页: [1]
查看完整版本: Delphi 10.2.3 新增的TMimeTypes类