当QT通过HTTP协议的post数据或者文件到服务器时,如果通过表单文件来发送数据或者文件的话,就有可能需要用到文件的Content-Type。
Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。
MIME的通用结构为type/subtype
由类型与子类型两个字符串中间用'/'
分隔而组成。并不允许空格存在。type 表示可以被分为复数子类的独立类型。subtype 表示细分后的每个类型。
MIME类型对大小写不敏感,但是传统写法都是小写。
下面是部分的Content-Type。
HTTP content-type 对照表
文件扩展名 | Content-Type(Mime-Type) | 文件扩展名 | Content-Type(Mime-Type) |
---|---|---|---|
.*( 二进制流,不知道下载文件类型) | application/octet-stream | .tif | image/tiff |
.001 | application/x-001 | .301 | application/x-301 |
.323 | text/h323 | .906 | application/x-906 |
.907 | drawing/907 | .a11 | application/x-a11 |
.acp | audio/x-mei-aac | .ai | application/postscript |
.aif | audio/aiff | .aifc | audio/aiff |
上面只是一小部分,更多的请参考:http://www.runoob/http/http-content-type.html
那QT怎样获取文件的Content-Type类型呢?
很简单,使用QMimeDatabase这个类就可以了。
QMimeDatabase db;
QMimeType subFileMimeType = db.mimeTypeForFile(fileName); //根据前面定义的文件名(含后缀)
QString fileMimeType = mime.name(); //使用name()将MimeType类型转为字符串类型
具体更多方法可以参考官方文档。
参考文献:
http://doc.qt.io/qt-5/qmimedatabase.html
http://www.runoob/http/http-content-type.html
更多推荐
QT获取文件类型的Content-Type(MIME Type)
发布评论