【问题标题】:Input file element's docx file's content type is not correct?输入文件元素的 docx 文件的内容类型不正确?
【发布时间】:2021-09-26 11:10:22
【问题描述】:

我知道 docx 的 MIME 类型是

application/vnd.openxmlformats-officedocument.wordprocessingml.document

但是每当我使用<input type="file"> 选择一个 docx 文件时,类型为空?

<!DOCTYPE html>

<html>
<body>

  <input type="file" id="myfile" name="myfile" multiple><br><br>
  <button onclick="logFile(event)">CLick</button>

</body>

<script>
function logFile(e) {
    var myFile = document.getElementById("myfile");
    console.table(myFile.files[0])
}
</script>
</html>

当您选择 pdf 时,此代码将记录带有 type = application/pdf 的表格,但当您选择 docx 文件时 type = ""

由于类型为空,当我将其发送到我的服务器时,浏览器会自动将 docx 文件读取为application/octet-stream,这不是我想要的

【问题讨论】:

    标签: javascript html file


    【解决方案1】:

    MIME 类型并不是真正的浏览器/客户端。尤其是 Windows 对它们一无所知,而是使用文件扩展名,而且它和浏览器都没有文件扩展名到 MIME 类型的列表或映射。

    此外,即使浏览器会发送 MIME 类型,您绝不可以信任客户端发送给您的任何内容。在任何情况下,您都需要查看已发送文件的内容并检查它是否真的是您期望的文件类型。

    【讨论】:

    • 但我无法控制后端。后端检查从前端发送的类型以执行一些逻辑。例如,如果我使用邮递员,我可以看到类型实际上是正确的。但是当我从浏览器发送时,类型只是错误
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2022-10-24
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多