2013-05-10 3 views
0

J'utilise le framework Symfony2 pour un de mes projets. Dans celui-ci, je veux télécharger une image. C'est vraiment facile à faire en suivant le livre de cuisine de Symfony2. Cela fonctionne très bien sur ma machine locale. Mais quand je mets toute l'application sur mon serveur distant (hébergement mutualisé de Planethoster.net), ça ne marche pas à cause des devineurs de l'extension Type-Mime. En fait, ils ne sont pas activés sur leurs serveurs ... (phpinfo montre --disable-fileinfo)Télécharger un fichier image en utilisant Symfony2 sans deviner?

Donc, fondamentalement, l'idée est de savoir s'il y a une solution pour faire la même action (télécharger une image) sans des devineurs d'extension?

Merci

Répondre

3

Que pensez-vous de filtrer le nom de fichier? Avec les trois derniers caractères, vous connaissez l'extension. Découvrez UploadedFile, il existe une méthode getClientOriginalName(). Ce que je ferais est de l'exploser par le ., récupérer la deuxième entrée du tableau résultant, puis l'analyser pour faire ce que vous voulez faire.

Voulez-vous un exemple de code?

+0

Merci, la chose est que je veux que le téléchargement soit interrompu pour tout mauvais type mime. C'est à dire. Si l'utilisateur renomme l'extension, je souhaite que mon application bloque le téléchargement du fichier. Jusqu'ici, j'ai fait quelque chose de similaire à ce que vous m'avez suggéré, mais je n'en suis pas entièrement satisfait. – Hannibal61

+0

Bonjour, comment faites-vous alors pour refuser le téléchargement? La première chose qui m'est venue à l'esprit était une exception, mais je ne suis pas tout à fait sûr qu'ils puissent être lancés à partir d'entités. – Videl

+0

ou getClientOriginalExtension() –

1

Fixer exception lors du téléchargement du fichier en utilisant le framework Symfony 2

Impossible de deviner le type MIME comme pas guessers sont disponibles.

permettent l'extension PHP php_fileinfo, pour ce faire trouver votre fichier php.ini et décommenter ligne suivante

; windows 
extension=php_fileinfo.dll 

ou

; linux 
extension=php_fileinfo.so 
Questions connexes