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
+

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

被折叠的 条评论
为什么被折叠?



