php无法读取包含多个文件的FormData

问题描述 投票:0回答:1

[在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>
    )
}
php reactjs dropzone.js form-data react-dropzone
1个回答
0
投票

我找到了解决方案。为了与PHP兼容,需要在多个文件名后附加[]来附加多个文件:

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

[resource示例3

© www.soinside.com 2019 - 2024. All rights reserved.