Dans le message d'erreur affiché lorsqu'on essaie d'envoyer une pièce jointe non autorisée, on voit que c'est toujours vide :
permittedtypes :---
Ligne 61 de formulaire.php, pour la fonction formulaire_upload, on voit cette variable $permittedtypes
Seulement, elle ne contient jamais rien.
Sans doute parce que ligne 729, dans l'appel à la fonction formulaire_upload, on utilise : $uploadMimeTypes
Je propose donc ce changement de code :
Remplacer ligne 61 :
function formulaire_upload($indice, $dstpath, $destname, $permittedtypes, $maxUploadSize)
par
function formulaire_upload($indice, $dstpath, $destname, $uploadMimeTypes, $maxUploadSize)
Et ligne 66
$permittedtypes = $allowed_mimetypes;
par
$permittedtypes = $uploadMimeTypes;
Et pour l'affichage complet des types autorisés (seuls 4 types sont affichés pour le moment avec le code en place) :
Vers la ligne 81, remplacer
echo "indice :".$indice
."<br> dstpath :".$dstpath
."<br> destname :".$destname." - ".$uploadDestName
."<br> permittedtypes :".$permittedtypes[0]."-".$permittedtypes[1]."-".$permittedtypes[2]."-".$permittedtypes[3]
."<br>Max upload file:".$maxUploadSize;
par
echo "<br> Nom du fichier envoyé : ".$destname;
echo "<br> Types autorisés : ";
foreach ($permittedtypes as $displaypermittedtypes)
{echo $displaypermittedtypes." - ";}
echo "<br>Taille d'upload maximale : ".$maxUploadSize." octets (".($maxUploadSize/1024)." ko)";
On pourrait essayer d'afficher les extensions au lieu de mimetypes.
Ce qui nous donnerait une erreur de ce type lors de l'envoi de types de fichiers non autorisés :
Citation :
Errors Returned While Uploading
Unknown filetype rejected
Nom du fichier envoyé : test2.tx
Types autorisés : application/pdf - application/msword - text/plain - image/gif - video/mpeg - image/jpeg - application/zip -
Taille d'upload maximale : 204800 octets (200 ko)
J'ai enlevé l'indice qui n'était pas parlant, et j'ai enlevé le chemin physique sur le serveur (autant éviter de dévoiler cette info).
Il resterait à utiliser les variables de langues, plutôt que ce texte en dur.