Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'essais de faire valider un fichier audio avant de le téléversé sur mon serveur.

$validator
            ->requirePresence('audio_file', 'create')
            ->notEmpty('audio_file','create')
            ->add('audio_file','mimeType',[
                'rule' => ['mimeType',['audio/wav','audio/mp3']]
            ]);

Ce que je veux

Quie la règle de validation n'accepte que des fichier mp3 ou wav

Ce que j'obtiens

La règle de validation continue à me bloquer même si c'est un fichier wav ou un fichier mp3 Je vois bien le tableau du fichier dans mes donnée avant la validation :

[
    'title' => 'Distance',
    'description' => 'Teste',
    'category_id' => '3',
    'online' => '1',
    'status' => 'private',
    'download' => '0',
    'audio_file' => [
        'name' => 'teste.wav',
        'type' => 'audio/wav',
        'tmp_name' => '/tmp/phpMGoshQ',
        'error' => (int) 0,
        'size' => (int) 45158444
    ],
    'artwork_file' => [
        'name' => '',
        'type' => '',
        'tmp_name' => '',
        'error' => (int) 4,
        'size' => (int) 0
    ]
]

Merci de votre aide en avance

3 réponses


Bonjour.
Je ne sais pas si tu as fais une erreur de copie, en tout cas dans le code que tu nous montre, une simple quote n'est pas refermée :

'rule' => ['mimeType', ['audio/wav','audio/mp3]]

Je ne connais pas du tout CakePHP, ceux-ci est donc à prendre avec des pincettes, mais n'est il pas préférable de faire ton propre validateur.
En te basant sur le retour de cette fonction : http://php.net/manual/fr/function.mime-content-type.php

tu pourrais toi même vérifier le mimetype.

lakamark
Auteur

@Lartak C'est une erreur de quand j'ai copier le code.