Pour limiter les types de fichiers pouvant être téléchargés, plusieurs approches peuvent être adoptées, tant du côté du serveur que du client. Voici quelques méthodes couramment utilisées, ainsi que des exemples concrets et des sources fiables pour approfondir la question.
```
```
Cette configuration autorisera uniquement les fichiers ayant des extensions .jpg, .jpeg, .png, .gif, et .pdf, tout en bloquant les extensions .exe, .php, .js, et .sh.
Source:
- Apache HTTP Server Documentation – Mod_authz_core: https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html
```
$allowed_mime_types = [‘image/jpeg’, ‘image/png’, ‘application/pdf’];
foreach ($_FILES as $file) {
$mime_type = mime_content_type($file[‘tmp_name’]);
if (!in_array($mime_type, $allowed_mime_types)) {
die(‘Ce type de fichier n\‘est pas autorisé.’);
}
// Procéder au traitement du fichier
}
```
Source:
- PHP Manual – mime_content_type: https://www.php.net/manual/en/function.mime-content-type.php
```
```
Cela restreint la boîte de dialogue de sélection de fichiers pour n’afficher que les fichiers avec les extensions spécifiées.
Source:
- MDN Web Docs – HTML: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
```
document.querySelector(“input[type=‘file’]”).addEventListener(‘change’, function(event) {
var allowedExtensions = /(\.jpg|\.jpeg|\.png|\.pdf)$/i;
var file = event.target.files0;
Source:
- MDN Web Docs – File API: https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications
Il existe également des services et bibliothèques tiers qui peuvent aider à filtrer les types de fichiers. Par exemple, dans un environnement Node.js, vous pouvez utiliser des bibliothèques comme `multer` pour gérer le téléchargement de fichiers avec des restrictions personnalisées.
Exemple dans Node.js avec multer:
```
const multer = require(‘multer’);
const fileFilter = (req, file, cb) => {
const allowedTypes = [‘image/jpeg’, ‘image/png’, ‘application/pdf’];
const upload = multer({
fileFilter: fileFilter
});
```
Source:
- Multer Documentation: https://github.com/expressjs/multer
En combinant ces méthodes, vous pouvez créer un mécanisme robuste pour limiter les types de fichiers pouvant être téléchargés, et ainsi, améliorer la sécurité et la compatibilité de votre application.