Vue 中的 FilePond - 自定义 Headers

FilePond in Vue - Customize Headers

我目前正在我的应用程序中使用 FilePond via the Vue-Adapter,它工作正常。

我目前,对于这个问题相关的代码如下:

<template>
  <v-layout>
    <v-flex class="text-center">
      <FilePond
        ref="pond"
        name="file"
        chunk-uploads="true"
        :chunk-size="chunkSize"
        class-name="my-pond"
        label-idle="Drop files here..."
        :allow-multiple="allowMultiple"
        :files="myFiles"
        :server="server"
        @init="handleFilePondInit"
        @error="error"
        @processfile="updatefiles"
        @addfile="testlog"
      />
    </v-flex>
  </v-layout>
</template>

server-属性 看起来像这样:

  computed: {
    headers() {
      return {
        Authorization: this.$auth.getToken('local'),
        projectId: this.projectId,
      };
    },
    server() {
      return {
        url: 'http://localhost:3001/api/filepond/',
        process: {
          url: 'process',
          headers: this.headers,
        },
        patch: {
          url: 'patch?id=',
          headers: this.headers,
        },
      };
    },
    chunkSize() {
      return this.$config.chunk_size_byte;
    },
  },

此设置工作正常。 FilePond 按预期工作,我的自定义 headers 被额外注入到 headers FilePond 提供的内容中。现在我 运行 遇到了一个问题,我在 process-Request 中也需要文件名,当 patch-Request 跟随时通常不会发送文件名。

我发现 this GitHub Issue,这基本上是我的确切问题。

但是,如果我将计算的 server 值更改为以下代码,我的 headers 根本不会应用。

    server() {
      return {
        url: 'http://localhost:3001/api/filepond/',
        process: {
          url: 'process',
          headers: (file, metaData) => ({
            Authorization: this.$auth.getToken('local'),
            projectId: this.projectId,
            filename: file.filename,
          }),
        },
        patch: {
          url: 'patch?id=',
          headers: this.headers,
        },
      };
    },

所以在尝试了很多之后,vue-filepond 似乎有一个错误,其中自定义 Header-Functions 仅在使用 fileSize > chunkSize.[=13= 上传文件时应用]

我提出了一个问题,Rik 暂时提供了一个解决方法 (https://github.com/pqina/vue-filepond/issues/193)。