FilePond во Vue - настройка заголовков

В настоящее время я использую FilePond через 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-Property выглядит так:

  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 работает так, как задумано, и мои пользовательские заголовки добавляются в дополнение к заголовкам, которые предоставляет FilePond. Теперь я столкнулся с проблемой, когда мне нужно имя файла также в process-запросе, который обычно не отправляется, когда следует patch-запрос.

Я нашел эту проблему GitHub, которая, по сути, является моей проблемой.

Однако если я изменю вычисленное значение server на следующий код, мои заголовки вообще не будут применяться.

    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,
        },
      };
    },

person Linsane    schedule 15.01.2021    source источник


Ответы (1)


Итак, после многих попыток, похоже, что есть ошибка с vue-filepond, когда пользовательские функции заголовков применяются только при загрузке файлов с fileSize > chunkSize.

Я открыл проблему, и Рик предоставил временное решение (https://github.com/pqina/vue-filepond/issues/193).

person Linsane    schedule 18.01.2021