如何使用 Symfony 4 上传音乐

How to upload music with Symfony 4

首先,我为我的英语道歉...

我的音乐上传有问题。感谢 Symfony Doc,我发现如何上传文件并成功设置图片上传。但是我发现我的音乐上传有问题,my dump in my controller indicates to me an error, and tells me that my file exceeds 2M,但在我的文件 php.ini 中,upload_max_filesize 被定义为 256M。我上传音乐的代码和图片一样。

我的代码:

namespace App\Form;

use App\Entity\Artist;
use App\Entity\Category;
use App\Entity\Music;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\FileType;

class MusicType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('description')
            ->add('picture', FileType::class, [
                'mapped' => false,
                'required' => false,
                'constraints' => [
                    new File([
                        'maxSize' => '8M',
                        'mimeTypes' => [
                            'image/jpeg',
                            'image/png',
                            'image/webp'
                        ]
                    ])
                ],
                'attr' => [
                    'accept'=>'.jpg, .jpeg, .png, .gif'
                ]
            ])
            ->add('music', FileType::class, [
                'mapped' => false,
                'constraints' => [
                    new File([
                        'maxSize' => '256M',
                        'mimeTypes' => [
                            'application/octet-stream',
                            'audio/mpeg',
                            'audio/mp3'
                        ]
                    ])
                ]
            ])

我一直在寻找解决方案,但所有结果都让我回到 https://symfony.com/doc/current/reference/constraints/File.html#maxsize

如果你有想法,我很感兴趣。

首先你需要检查 php.ini 中的 post_max_size。

upload_max_filesize是任何单个文件的限制。 post_max_size 是整个请求体的限制,可以包含多个文件。

确保 post_max_size >= upload_max_size

查看之前关于此的回答。

PHP post_max_size overrides upload_max_filesize