php не может прочитать FormData, содержащую несколько файлов - PullRequest
0 голосов
/ 09 мая 2020

В php я не могу получить доступ к загруженным файлам в $_FILES, вместо этого они отображаются в $_POST["imgs"] как [object File] без каких-либо свойств, таких как name. Как я могу получить доступ к этим файлам в $_FILES?

import React, { useCallback } from 'react'
import { useDropzone } from 'react-dropzone'
import axios from 'axios'

const imgAjaxUploader = axios.create({
    baseURL: 'http://localhost',
    timeout: 1000,
    headers: { 'Content-Type': 'mulipart/form-data' }
});

export default function ImgDropzone() {

    const onDrop = useCallback(acceptedFiles => {
        const formData = new FormData()
        formData.append('imgs', acceptedFiles)
        try {
            imgAjaxUploader.post('/store/admin/imgHandler.php', formData, {
                headers: {
                    'Content-Type': 'mulipart/form-data'
                }
            }).then(data =>
                console.log(data)
            ).catch(err => {
                console.log(err)
                return null
            })

        } catch (err) {
            alert(err)
        }
    }, [])


    const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop: onDrop, accept: 'image/jpeg, image/png' })

    return (
        <div {...getRootProps()} style={{ display: "inline-block" }}>
            <input {...getInputProps()} />
            {
                isDragActive ?
                    <p>Drop the files here ...</p> :
                    <p>Drag 'n' drop some files here, or click to select files</p>
            }
        </div>
    )
}

1 Ответ

0 голосов
/ 09 мая 2020

Я нашел решение. Для совместимости с PHP:

    acceptedFiles.forEach(file => {
        formData.append('imgs[]', file)
    })

ресурс пример 3

к одному имени необходимо добавить несколько файлов с завершающим []
...