代码之家  ›  专栏  ›  技术社区  ›  Dan

用户上载Excel工作表-文件类型为应用程序/八位字节流

  •  0
  • Dan  · 技术社区  · 7 年前

    data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,UEsDBBQABgAIAAAAIQBi7p1oXgEAAJAEAAA
    

    然而,最近一个用户遇到了问题,她的文件被上传并存储为:

    data:application/octet-stream;base64,UEsDBBQACAgIAGVKWk0AAAAAAAAAAAAAA
    

    如果我下载她的文件,它们看起来就像完美的Excel表格,如果我再次上传它们,即使没有打开它们,它们也会作为XML电子表格上传。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Damir Varevac    6 年前

    在我的例子中,问题与浏览器无关。我们尝试从运行Windows的多台计算机上载Microsoft Excel工作表(.xlsx)文件。相同的浏览器版本 (版本83.0.4103.106), 边缘 (版本83.0.478.54)和 火狐

    在使用MS office的计算机上,所有浏览器都接受以下文件:

    Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    

    未安装MS Office的计算机上的浏览器接受了以下文件:

    Content-Type: application/octet-stream
    
        2
  •  2
  •   Dan    7 年前

    正如@ourmandave所指出的,浏览器没有100%可靠的方法来确定MIME类型: MIME types from browsers

    在本例中,用户从Chromebook(as.xlsx)上的GoogleDrive下载了一个GoogleSheet,然后将xls上传给我。文件很好(可以解释为.xlsx文件),但不同Chromebook上文件开头的MIME类型可能是:

    data:application/octet-stream;base64
    

    或者只是

    data:;octet-stream