delphi MimeType for Restful及delphi mime-type和文件扩展名对照表

本文详细介绍了在Delphi XE中如何获取MIME-Type及其与文件扩展名的对应关系,展示了如何通过代码列出所有支持的MIME-Type及其文本、二进制或未定义的类别,适用于RESTful应用开发。

delphi XE获取mime-type和文件扩展名对照表

 

        MimeType是你让编写的应用Restful化编程所必须的。delphi支持哪些MimeType,如何知道这些MimeType与文件扩展名的对应关系,以及它们是文本种类、二进制种类还是未定义的。

一、先上代码 : 

        已附上面源码下载。由于代码引用了跨平台的文件存取,使用源码注意事项:1、在FormCreate中获取你自己写的代码的系统权限;2、并设置你自己的项目路径   https://download.youkuaiyun.com/download/pulledup/12364885 :代码以本文为准!

unit MasterDetail;

interface

uses
  System.SysUtils, System.Types, System.UITypes,
  System.Classes, System.Variants,
  System.Rtti, System.Bindings.Outputs,

  System.Net.Mime, REST.Types, //:本案ListView1第1项"展示MimeType即ContentType"需要引用的单元
  System.IOUtils,

  Data.Bind.GenData, Data.Bind.EngExt,
  Data.Bind.Components, Data.Bind.ObjectScope,

  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics,
  FMX.Dialogs, FMX.ListView.Types,

  Fmx.Bind.GenData, Fmx.Bind.Editors, Fmx.Bind.DBEngExt,
  FMX.Objects, FMX.StdCtrls, FMX.ListView,
  FMX.ListView.Appearances, FMX.Layouts, FMX.MultiView,FMX.Memo,
  Fmx.Bind.Navigator, System.Actions, FMX.ActnList,
  FMX.ListView.Adapters.Base, FMX.ScrollBox,
  FMX.Controls.Presentation;

type
  TMasterDetailForm = class(TForm)
    MultiView1: TMultiView;
    Layout1: TLayout;
    ListView1: TListView;
    MasterToolbar: TToolBar;
    MasterLabel: TLabel;
    DetailToolbar: TToolBar;
    DetailLabel: TLabel;
    MasterButton: TSpeedButton;
    imgContact: TImage;
    lblName: TLabel;
    lblTitle: TLabel;
    PrototypeBindSource1: TPrototypeBindSource;
    BindingsList1: TBindingsList;
    LinkPropertyToFieldBitmap: TLinkPropertyToField;
    LinkPropertyToFieldText: TLinkPropertyToField;
    LinkPropertyToFieldText2: TLinkPropertyToField;
    Layout2: TLayout;
    Layout3: TLayout;
    Memo1: TMemo;
    LinkControlToField1: TLinkControlToField;
    LinkListControlToField1: TLinkListControlToField;
    ActionList1: TActionList;
    LiveBindingsBindNavigateNext1: TFMXBindNavigateNext;
    LiveBindingsBindNavigatePrior1: TFMXBindNavigatePrior;
    btnUp: TSpeedButton;
    btnDown: TSpeedButton;
    procedure ListView1ItemClick(const Sender: TObject; const AItem: TListViewItem);
    procedure ListView1UpdateObjects(const Sender: TObject;
      const AItem: TListViewItem);
    procedure ListView1UpdatingObjects(const Sender: TObject;
      const AItem: TListViewItem; var AHandled: Boolean);
    procedure LinkControlToField1AssigningValue(Sender: TObject;
      AssignValueRec: TBindingAssignValueRec; var Value: TValue;
      var Handled: Boolean);
    procedure LinkPropertyToFieldTextAssigningValue(Sender: TObject;
      AssignValueRec: TBindingAssignValueRec; var Value: TValue;
      var Handled: Boolean);
    procedure LinkPropertyToFieldText2AssigningValue(Sender: TObject;
      AssignValueRec: TBindingAssignValueRec; var Value: TValue;
      var Handled: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure PrototypeBindSource1CreateAdapter(Sender: TObject;
      var ABindSourceAdapter: TBindSourceAdapter);
  private
    FMemo1LinesTextDefault:String;
    FTPersistentFilePath :string;
    { Private declarations }
  public
    { Public declarations }
  end;

const FTPersistentFile ='FTPersistentFile.txt';
var
  MasterDetailForm: TMasterDetailForm;


///<summary>获取或展示MimeType即ContentType并输出TMimeTypes.TKind对于的文件种类字符串(未定义'Undefined', 二进制'Binary', 文本'Text'),参数:(AExt='')则返回所有类型文件扩展名对应的MimeType列表字符串回车换行分割;not (AExt='')则返回传入扩展名的MimeType</summary>
function getMimeTypes(const AExt:string;var AKind:string):string;

function getExtOfMimeTypes(const AType:string;var AKind:string):string;

implementation

{$R *.fmx}

uses
  myFuc_UnifiedPlatForm, myFuc_Client;
    //:这是我自己用的库单元,主要用于本例需要使用的权限和下面的路径生成(替换成你自己的)

const
  FMimeTypeList =
     CONTENTTYPE_NONE +','
    +'application/atom+xml' +','
    +'application/ecmascript' +','
    +'application/EDI-X12' +','
    +'application/EDIFACT' +','
    +'application/json' +','
    +'application/javascript' +','
    +'application/octet-stream' +','
    + 'application/ogg' +','// do not localize
    + 'application/pdf' +',' // do not localize
    + 'application/postscript' +',' // do not localize
    + 'application/rdf+xml' +',' // do not localize
    + 'application/rss+xml' +',' // do not localize
    + 'application/soap+xml' +',' // do not localize
    + 'application/font-woff' +',' // do not localize
    + 'application/xhtml+xml' +',' // do not localize
    + 'application/xml' +',' // do not localize
    + 'application/xml-dtd' +',' // do not localize
    + 'application/xop+xml' +',' // do not localize
    + 'application/zip' +',' // do not localize
    + 'application/gzip' +',' // do not localize
  // Type Text
    + 'text/cmd' +',' // do not localize
    + 'text/css' +',' // do not localize
    + 'text/csv' +',' // do not localize
    + 'text/html' +',' // do not localize
    + 'text/javascript' +',' // do not localize
    + 'text/plain' +',' // do not localize
    + 'text/vcard' +',' // do not localize
    + 'text/xml' +',' // do not localize
  // Type Audio
    + 'audio/basic' +',' // do not localize
    + 'audio/L24' +',' // do not localize
    + 'audio/mp4' +',' // do not localize
    + 'audio/mpeg' +',' // do not localize
    + 'audio/ogg' +',' // do not localize
    + 'audio/vorbis' +',' // do not localize
    +
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专讲冷知识

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值