Skip to content

isPlainTextFile

判断文件是否应按 UTF-8 纯文本读取(源码、配置、标记语言等)。不含 PDF / Word / 光栅图。

导出

typescript
const PLAIN_TEXT_FILE_EXTENSIONS: Set<string>
const PLAIN_TEXT_FILE_ACCEPT: string

function isPlainTextFileName(filename: string | null | undefined): boolean
function isPlainTextMimeType(mimeType?: string | null): boolean
function isPlainTextFile(file: { name?: string; type?: string }): boolean
function bytesLookLikeUtf8Text(input: ArrayBuffer | ArrayBufferView | null | undefined): boolean

判定顺序

  1. MIME 为 text/*,或 application/json / application/javascript 等白名单
  2. 否则看文件名后缀(.java.ts.json 等)
  3. 后缀与 MIME 都未知时,可用 bytesLookLikeUtf8Text 抽样字节

Windows 上 .java 的 MIME 经常为空或 application/octet-stream,必须靠后缀。

使用场景

  • 知识库上传:源码/纯文本走 UTF-8,PDF/Word/图片另判
  • <input type="file" :accept="PLAIN_TEXT_FILE_ACCEPT">