Проверка типа файла в ReactJs с помощью Filepond - PullRequest
0 голосов
/ 13 апреля 2019

Я успешно реализовал загрузку файлов вactJ с использованием инфраструктуры Yii2 и ReactJ. Но я буду любить проверять тип файла перед загрузкой. Я пришел через https://pqina.nl/filepond/docs/patterns/plugins/file-validate-type/ и попытался сделать это как

<FilePond
    ref={ref => this.pond = ref}
    files={this.state.coverfiles}
    acceptedFileTypes={['images/*']}
    fileValidateTypeDetectType={(source, type) => new Promise((resolve, reject) => {

        resolve(type);
     })
    }
    onupdatefiles={(fileItems) => {
          // Set current file objects to this.state
          this.setState({
              coverfiles: fileItems.map(fileItem => fileItem.file)
          });
      }}
    required={true} 
    name={'coverfiles'} 
    //instantUpload={this.state.sumitted}
    allowImageCrop={true}
    allowMultiple={false} 
    processFile={false}

    labelIdle={'Drag and Drop your Cover Add Picture or <span class="filepond--label-action"> Browse </span>'}

    >
</FilePond>

Мне потребуется сделать это в разных случаях для изображений, аудиофайлов и видеофайлов.

и я не знаю, как разрешить конкретный тип файла здесь. Я уже установил плагин, и любая помощь в этом благодарна.

1 Ответ

0 голосов
/ 13 апреля 2019

В соответствии с документацией браузер предоставляет тип mime-файла, поэтому все, что вам нужно сделать, это разрешить изображения, аудио и видео, например, так:

acceptedFileTypes={['image/*', 'audio/*', 'video/*']}

Функция fileValidateTypeDetectType необходима только в том случае, если браузер делает ошибку при определении типа пантомимы. В этом случае вы resolve правильный тип (или позвоните reject(reason) для отмены.

...