Filepond 在一次请求中处理所有文件

Filepond process all files in one request

我正在使用 react-filepond 处理多个文件。我需要在一个请求中将所有文件一起发送到 API,而不是每个文件发送多个请求:

// Import the Image EXIF Orientation and Image Preview plugins
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)

function App() {
  console.log('TEST');
  const [files, setFiles] = useState([])
  console.log(files);
  return (
    <div className="App">
      <FilePond
        server='/api'
        files={files}
        allowMultiple={true}
        onupdatefiles={setFiles}
        labelIdle='Drag & Drop your files or <span class="filepond--label-action">Browse</span>'
      />
    </div>
  )
}

const rootElement = document.getElementById('root')
ReactDOM.render(<App />, rootElement)

沙盒 link here.

我该如何实现?

不要使用 server 属性。您可以将 files 数组映射到文件对象 files.map(item => item.file),然后将文件项传递给 FormData 对象并将 formData 对象发送到服务器。

const formData = new FormData();
files.map(item => item.file).forEach(file => formData.append('my-file', file))

// send formData to server with `fetch` or `XMLHttpRequest`