Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Uppy'传递元数据;s仪表板插件_Javascript_Node.js_Uppy - Fatal编程技术网

Javascript 如何使用Uppy'传递元数据;s仪表板插件

Javascript 如何使用Uppy'传递元数据;s仪表板插件,javascript,node.js,uppy,Javascript,Node.js,Uppy,说到使用Uppy,我是个初学者。我相信像你这样的专业人士可以解决这个问题。但我无法将特定的元数据信息发送到我的上传路径 uppy.js // Import the plugins const Uppy = require('@uppy/core'); const XHRUpload = require('@uppy/xhr-upload'); const Dashboard = require('@uppy/dashboard'); const request = require('reque

说到使用Uppy,我是个初学者。我相信像你这样的专业人士可以解决这个问题。但我无法将特定的元数据信息发送到我的上传路径

uppy.js

// Import the plugins
const Uppy = require('@uppy/core');
const XHRUpload = require('@uppy/xhr-upload');
const Dashboard = require('@uppy/dashboard');

const request = require('request');

const uppy = Uppy({
    debug: true,
    autoProceed: false,
    restrictions: {
        maxFileSize: 1024000,
        maxNumberOfFiles: 3,
        minNumberOfFiles: 1,
        allowedFileTypes: ['image/*', 'video/*']
    }
})
    .use(Dashboard, {
        trigger: '.UppyModalOpenerBtn',
        inline: true,
        target: '#drag-drop-area',
        replaceTargetContent: true,
        showProgressDetails: true,
        proudlyDisplayPoweredByUppy: false,
        animateOpenClose: true,
        note: 'Images and video only, 1–3 files, up to 1 MB',
        height: 470,
        browserBackButtonClose: true,
        theme: 'dark',
        metaFields: [
            {id: 'caption', name: 'Caption', placeholder: 'describe what the image is about'}
        ]
    });

uppy.on('file-added', (file) =>{
    console.log(file);
    uppy.setFileMeta(file.meta.id, {
       caption: file.name
    });


});


uppy.use(XHRUpload, {
    id: 'XHRUpload',
    endpoint: 'http://localhost:8000/upload',
    method: 'POST',
    formData: true,
    fieldName: 'my_file',
    metaFields: ['caption'],
    bundle: true

});


uppy.on('upload-success', (file, response) => {
    //console.log(file.meta.caption);
    console.log("File uploaded successfully ", file);
});

module.exports = uppy;
upload.js

router.post('/',(req, res, next) => {

  console.log("Coming form uppy.js " , req.body);

});

module.exports = router;

我无法将“caption”值传递到路线。当我在谷歌Chrome的开发者工具上查看“网络标签”时,它会给我一个“未定义”的信息。如果你能给我指出正确的方向,我将不胜感激!谢谢大家!

首先需要将
file.meta.id
更改为
file.id

uppy.on('file-added', (file) =>{
    console.log(file);
    uppy.setFileMeta(file.id, {
        test: 'hello'
    });
});
但是如果您使用
bundle
,您应该知道该注释

注意:当bundle设置为true时,只有通过meta options属性设置的全局uppy元数据才会发送到端点。忽略每个文件的单个元数据。


因此,如果您想发送每个文件的元数据,您应该将其更改为false,然后您将面临每个文件的单独请求,但所有元数据都将出现在请求中,首先需要将
file.meta.id
更改为
file.id

uppy.on('file-added', (file) =>{
    console.log(file);
    uppy.setFileMeta(file.id, {
        test: 'hello'
    });
});
但是如果您使用
bundle
,您应该知道该注释

注意:当bundle设置为true时,只有通过meta options属性设置的全局uppy元数据才会发送到端点。忽略每个文件的单个元数据。

所以,如果您想为每个文件发送元数据,您应该将其更改为false,然后您将面临每个文件的单独请求,但所有元数据都将出现在请求中