美文网首页
[Django] 文件类型推断

[Django] 文件类型推断

作者: alue | 来源:发表于2022-04-19 14:01 被阅读0次

    任务:用户可以上传任意类型文件,后端自动识别文件类型。

    这个业务需求来源于最近开发的知识图谱。图谱中,针对每个节点对象,用户都可以关联各种类型的附件。

    但页面渲染时,需要根据附件类型,来选择合适的渲染方式。

    可以在用户上传附件时,手动选择文件类型。但这样既费时,又需要做错误处理,非常不科学。

    后端可以根据文件的后缀名来判断文件类型,例如.jpg/.png等结尾的,就划分为图片,.mp4/.flv结尾的就划分为视频等。这样能够应付大部分场景,除非用户搞坏,故意修改文件后缀。

    但真要又这样的需求,该怎么处理呢?

    这里推荐一个python工具包filetype,它通过检测“magic number”——一种文件特征,来快速判断文件类型。

    例如所有pdf文件的开头都是16进制的25 50 44 46 , GIF文件开头的ASCII码是GIF89a或者GIF87a等。

    通过这种特征检测,filetype能够快速推断出文件类型。

    相关文章

      网友评论

          本文标题:[Django] 文件类型推断

          本文链接:https://www.haomeiwen.com/subject/tspsertx.html