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