Нет кнопки загрузки с помощью FilePond ReactJS

#javascript #reactjs #file-upload

#javascript #reactjs #загрузка файла

Вопрос:

Добрый день,

Я хочу использовать FilePond с Reactjs для облегчения загрузки изображений на сервер.Я хочу, чтобы файл был заполнен в пруду, как показано в описании, а затем появилась кнопка загрузки, чтобы пользователь мог загрузить файл.

Изначально, используя их демонстрационный код, я заметил, что он автоматически загружает файлы, и, прочитав документацию, я вижу, что я отключаю эту функцию автоматической загрузки, используя «instantUpload = {false}» на моем сервере. Однако я сделал это, и у меня все еще нет кнопки загрузки для использования пользователем. Я еще немного прочитал документацию, и они говорят, что мне нужно указать сервер, который у меня есть. Есть ли что-то, чего мне не хватает, чтобы показать кнопку загрузки в моем коде.

Код ниже:

 import React, { Component } from "react";
/*import agent from "superagent";*/
import classNames from "classnames";
import cookie from 'react-cookies';

// Import React FilePond
import { FilePond, registerPlugin } from "react-filepond";

// Import FilePond styles
import "filepond/dist/filepond.min.css";

// Import the Image EXIF Orientation and Image Preview plugins
// Note: These need to be installed separately
import FilePondPluginImageExifOrientation from "filepond-plugin-image-exif-orientation";
import FilePondPluginImagePreview from "filepond-plugin-image-preview";
import "filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css";

// Register the plugins
registerPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);


export default class FotoUpload extends Component {
  constructor(props) {
   super(props);

   this.state = {
     // Set initial files, type 'local' means this is a file
     // that has already been uploaded to the server (see docs)
     files: [
       {
         source: "index.html",
         options: {
           type: "local"
         }
       }
     ]
   };
 }

 handleInit() {
   console.log("FilePond instance has initialised", this.pond);
 }

 render() {
   return (
     <div className="App">
       {/* Pass FilePond properties as attributes */}
       <FilePond
       ref={ref => (this.pond = ref)}
                  allowFilePoster={true}
                  instantUpload={false}
                  server=
                      {
                        {
                          url: 'http://mybackend.com:5000/upload/images',
                          process: {
                          headers: {
                                'cookie-token':  cookie.load('cookie')
                                  },
                            }
                          }
                        }
                  name="image"
                  acceptedFileTypes={['image/*']}
                  oninit={() => this.handleInit()}
         onupdatefiles={fileItems => {
           // Set currently active file objects to this.state
           this.setState({
             files: fileItems.map(fileItem => fileItem.file)
           });
         }}
       />
     </div>
   );
 }
}
 

Если я разрешу функцию instaupload, файл загрузится, и вернется успех, но я все равно не получу кнопку загрузки.

Myimage

Как вы можете видеть, нет кнопки загрузки, как показано в официальной документации. Мое изображение

Аналогичная проблема
https://github.com/pqina/vue-filepond/issues/5

Документация
FilePond https://pqina.nl/filepond/docs/patterns/api/server /

Официальный репозиторий
https://github.com/pqina/react-filepond

Комментарии:

1. Что произойдет, если вы установите server 'http://mybackend.com:5000/upload/images'

2. Как оказалось, этот код работает нормально. Проблема в том, что в filepond многое происходит в фоновом режиме, и у меня был модифицированный код, и мне пришлось глубоко копать. Я понял это, когда этот код работал в изолированной среде. Итак, я удалил компонент, и все заработало.