如何使用 PrimeReact FileUpload 组件上传文件

Posted

技术标签:

【中文标题】如何使用 PrimeReact FileUpload 组件上传文件【英文标题】:How to upload files using PrimeReact FileUpload Component 【发布时间】:2020-06-08 20:38:00 【问题描述】:

我是 React/Spring 初学者,我不知道如何使用 Primereact 进行文件上传。 他们的文档说明如下 (https://www.primefaces.org/primereact/#/fileupload):

FileUpload 需要一个 url 属性作为上传目标和一个名称来识别后端文件。

<FileUpload name="demo" url="./upload"></FileUpload>

但它既没有说我如何获取数据,我如何访问后端的“演示”,也没有说我得到什么样的响应。

谁能帮帮我?我已经在网上搜索过,但没有找到任何东西。

【问题讨论】:

【参考方案1】:

你可以这样做:

<FileUpload name="invoice"
    accept="image/*"
    customUpload=true
    uploadHandler=invoiceUploadHandler
    mode="basic"
    auto=true
    chooseLabel="Upload invoice"/>
const invoiceUploadHandler = (files) => 
    const [file] = files;
    const fileReader = new FileReader();
    fileReader.onload = (e) => 
        uploadInvoice(e.target.result);
    ;
    fileReader.readAsDataURL(file);
;

这样发送您的请求

const uploadInvoice = async (invoiceFile) => 
    let formData = new FormData();
    formData.append('invoiceFile', invoiceFile);

    const response = await fetch(`orders/$orderId/uploadInvoiceFile`,
        
            method: 'POST',
            body: formData
        ,
    );
;

重要提示:不要设置任何Content-Type 标头!这将自动完成。

【讨论】:

以上是关于如何使用 PrimeReact FileUpload 组件上传文件的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 PrimeReact ListBox 中的列表项之一?

在 PrimeReact 中覆盖 SCSS 变量

PrimeFaces 与 PrimeReact?他们有啥共同点?

PrimeReact - 数据表和延迟加载问题

有没有办法在 PrimeReact 树中使用自定义图标?

PrimeReact 和样式化组件