从FineUploader获取上传的文件信息

问题描述 投票:2回答:1

我正在我的应用程序中实现React版本的FineUploader,以将文件上传到Azure Blob存储。

一旦我确保上传文件,我需要将其信息保存在我的后端数据库中。我不想在我的数据库中注册文件信息,除非我知道文件在我的blob存储中。这是我需要捕获的信息:

  • 原始文件名
  • 指定blobNameuuid
  • 如果可以的话,文件大小信息也会非常有用,但它不是必须的

如果我正在阅读正确的文档,blobProperties似乎是我获取此信息的正确位置,但到目前为止我还没有能够使用它。

blobProperties中,我不需要调用我的数据库来获取blobName。我可以分配一个简单的GUID值很好或只是捕获uuid FineUploader正在分配。我只是想捕获我需要的信息并将它们存储在我的Redux商店中。

这是我需要一些帮助的地方:

const uploader = new FineUploaderAzure({
    options: {
        blobProperties: function(id) {

            // How do I get original file name here?
            // If I can, I'd like to get file size as well.
            // Once I know file's original name as well as the blobName assigned to it, I'll store them in my Redux store
        },
        cors: {
            expected: true,
            sendCredentials: false
        },
        signature: {
            endpoint: 'http://myapp.com/api/getsas'
        },
        request: {
            endpoint: 'https://myaccount.blob.core.windows.net/my-container'
        },
        callbacks: {
            onComplete: function (id, name, responseJSON, xhr) {

                myFunction(responseJSON);

            }
        }
    }
})

const myFunction = (responseJSON) => {

    // If upload is successful, I'll get file details from Redux store and call my action creators
    // to trigger an API call to my backend so that I can register uploaded files in my database.
}

我很感激有关如何获取我正在寻找的文件信息的一些指示。

javascript reactjs fine-uploader
1个回答
1
投票

使用onComplete函数参数id,您可以使用fineUploader公开的方法检索所有内容

你可以在你的函数中像这样调用它们

onComplete: function (id, name, responseJSON, xhr) {
                uploader.methods.getName(id);
                uploader.methods.getSize(id);
                uploader.methods.getBlobName(id);
                myFunction(responseJSON);
            }
© www.soinside.com 2019 - 2024. All rights reserved.