首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对于不同的文件格式,Antd beforeUpload无法按预期工作

对于不同的文件格式,Antd beforeUpload无法按预期工作
EN

Stack Overflow用户
提问于 2021-03-11 18:49:49
回答 1查看 587关注 0票数 0

我正在使用简单的antd Uploader dragger组件和传递道具beforeUpload,以避免上传我想要上传的文件扩展名。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const props = {
    name: "file",
    multiple: true,
    action: "/upload",
    beforeUpload: (file) => {
         if (file.name.split(".").reverse()[0] !== ("pdf" || "doc" || "docx")) {
            console.log(`${file.name} is not a correct format file`);
         }
         return file.name.split(".").reverse()[0] === ("pdf" || "doc" || "docx") ? true : Upload.LIST_IGNORE;
              },
     onChange(info) {
        const { status } = info.file;
         console.log(info.files) //All format files are shown in console
      },
      accept: ".pdf,.doc,.docx",
      showUploadList: false,
      fileList: files,
};

这是组件的返回

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Upload.Dragger {...props}>
  <p>Drag and upload your files</p>
</Upload.Dragger>

问题是,即使控制台正常工作并显示某个特定文件不是正确格式的文件,它仍然会被添加到不应该添加到fileList数组中,因为我正在对它使用Upload.LIST_IGNORE。我已经尝试调试了几个小时,但没有用,谁能指导我关于这个问题,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-11 19:05:06

在您当前的实现中,您只是将上传文件的文件类型与pdf类型进行比较,因为您所有的文件格式都在括号中,并且您使用的是||,它将返回第一个真值,在本例中为pdf

您需要使用您接受的文件格式列表检查上传的文件类型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
beforeUpload: (file) => {
 const acceptedFormats = ['pdf', 'doc', 'docx'];
 return acceptedFormats.includes(file.name.split('.')[1]) ? true : Upload.LIST_IGNORE;
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66588707

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文