使用antd上传时在同一页面上下载文档

时间:2019-02-27 07:24:33

标签: javascript reactjs antd

我正在使用antd's upload component来允许用户上传文档。现在,在用户上传它之后,我还希望允许他下载刚刚上传的附件。我知道文档通过以下方式对此进行了解释:

import { Upload, Button, Icon } from 'antd';

const props = {
    action: '//jsonplaceholder.typicode.com/posts/',
    onChange({ file, fileList }) {
        if (file.status !== 'uploading') {
        console.log(file, fileList);
        }
    },
    defaultFileList: [{
        uid: '1',
        name: 'xxx.png',
        status: 'done',
        response: 'Server Error 500', // custom error message to show
        url: 'http://www.baidu.com/xxx.png',
    }],
    };

ReactDOM.render(
    <Upload {...props}>
        <Button>
        <Icon type="upload" /> Upload
        </Button>
    </Upload>,
    mountNode
);

但是我想允许在同一页面上进行下载,并且不想在单击时打开新窗口。我该怎么办?有更好的方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

default behavior将在新窗口中打开文件。

您可以通过为onPreview提供一个Upload道具来覆盖此行为:

  

onPreview:单击文件链接或预览图标时将执行回调函数。

 <Upload
      //...
      onPreview={handlePreview}
    >

现在,编写您自己的逻辑以将文件下载到handlePreview中。您可以在线找到许多有关如何实现该目标的示例。

const handlePreview = (file) => {
    console.log(file);
    // write how you want to download
}