【问题标题】:DropZone: How to Accept .csv Files?DropZone:如何接受 .csv 文件?
【发布时间】:2020-06-05 09:42:01
【问题描述】:

我已经阅读了很多关于 SO 的答案,大多数人建议使用 acceptedFiles 属性来指定接受的 mime 类型。

但是,the DropZone docs say:

Mime 类型确定跨平台不可靠。 CSV 文件, 例如,在 macOS 下报告为 text/plain,但报告为 Windows下的application/vnd.ms-excel。在某些情况下可能没有 完全是一个 mime 类型。

我正在尝试上传一个 .csv 文件,并且(使用 material-ui-dropzone),到目前为止我已经尝试过:

  <Dropzone
    acceptedFiles={['.csv', 'text/*']}
    showPreviews={true}
    showFileNamesInPreview={true}
  />

  <Dropzone
    acceptedFiles={'.csv', 'text/*'}
    showPreviews={true}
    showFileNamesInPreview={true}
  />

  <Dropzone
    acceptedFiles={'.csv', 'text/csv'}
    showPreviews={true}
    showFileNamesInPreview={true}
  />

...等等,但到目前为止都没有工作:

  • 打开文件对话框将.csv 文件显示为灰色
  • .csv 文件拖放到 DropZone 会收到“文件 SeriesNotes.csv 被拒绝。不支持文件类型”。留言

material-ui-dropzone(或任何版本的 DropZone)解决此问题的正确方法是什么?

【问题讨论】:

    标签: dropzone react-dropzone


    【解决方案1】:

    经过多次反复试验,这对我有用。

    acceptedFiles={[".csv, text/csv, application/vnd.ms-excel, application/csv, text/x-csv, application/x-csv, text/comma-separated-values, text/x-comma-separated-values"]}
    

    windows 上的主要文件是 .csv,其余的以防万一。

    【讨论】:

    • 这很好用,注意到最好添加 1 元素数组,就像使用的这个答案一样,而不是在每个数组元素中以不同的方式分隔它们
    • accept: "text/plain, application/vnd.ms-excel" --> 这对我来说适用于 csv 和文本文件,但它也接受 .xls 文件,这是我试图避免的.有什么建议?编辑:据我所知,application/vnd.ms-excel 是 .csv 和 .xls 文件的接受标准。其他参数并没有真正做任何事情。您能否在最后验证这是否也是如此?我遇到了排除问题
    • :如果我删除了 acceptapplication/vnd.ms-excel,它会正确排除 .xls 和 .xlsx 文件,并且只接受 .csv 文件。但是,在 onHover 上,它显示为不可接受的文件类型。对不起,如果我让你感到困惑。将找到解决方案并在此处更新
    • 谢谢@user1767752,这对我来说很好!
    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2015-05-04
    相关资源
    最近更新 更多