Manual:Configuring file uploads/fr

MediaWiki supporte le téléversement et l'intégration de fichiers multimédia Cette page décrit les aspects techniques de cette propriété, voir et  pour les informations d'usage général.

Existant depuis MediaWiki version 1.1, le téléversement de fichiers est initialement désactivé par défaut, pour des questions de sécurité. Le téléversement de fichiers peut être activé via un paramètre de configuration, bien qu'il soit recommandé de vérifier d'abord certains pré-requis.

Vérifier que les téléversements sont activés en PHP
Les éléments suivants doivent être paramétrés dans le fichier :

Si cela n'est pas paramétré, les scripts PHP ne pourront pas utiliser les fonctions de téléversement, et les téléversements de MediaWiki ne seront pas activés.

Si la directive open_basedir est paramétrée, elle devra inclure à la fois le fichier de destination de téléversement de votre installation MediaWiki ("{$IP}/images") et le 'upload_tmp_dir' (dossier système par défaut si non paramétré). L'ajout du 'upload_tmp_dir' peut éviter les messages comme "Could not find file "/var/tmp/php31aWnF" (où dans cet exemple le upload_tmp_dir' est '/var/tmp') Apprenez-en davantage sur le téléversement de fichiers sur File upload basics et en particulier.

Note: La valeur formelle pour la variable est une expression booléenne. PHP traite chaque chaîne non reconnue comme la valeur 'False' comme étant 'true', par conséquent la valeur 'on', souvent utilisée, renvoie le même résultat.

Vérification pour utilisateurs de Windows et IIS
Paramétrez  pour donner au compte invité internet ( _MachineName, or   for IIS 7+): lecture, écriture et exécution;

Vérification de la sécurité du répertoire
Le répertoire de téléversement doit être configuré pour qu'il ne soit pas possible pour un utilisateur final de téléverser et exécuter d'autres types de scripts, qui pourraient alors s'octroyer un accès à votre répertoire web et endommager votre wiki ou votre site web.

Paramétrez le dossier  (ou le dossier   pour les précédentes versions)pour avoir la permission "755".
 * L'Utilisateur peut lire, écrire et exécuter;
 * Le Groupe peut lire et exécuter;
 * Les Autres peuvent lire et exécuter.

En cas d'utilisation du safe_mode, assurez-vous que le répertoire est la propriété de l'utilisateur qui exécute le script php (qui est l'utilisateur Apache, ou, dans le cas de suphp, le propriétaire du script).

En cas d'utilisation de CentOS 6 ou Mageia, les paramètres "owner:group" de la commande chown doivent être "apache:apache" au lieu de "www-data:www-data".

En cas d'utilisation de SELinux, vérifiez les paramètres ACLs (voir la documentation).

En cas d'utilisation de suphp, vérifiez que le umask a la valeur 0022 (ou moins) dans le fichier /etc/suphp.conf.

Si vous ne souhaitez pas qu'un utilisateur public puisse lister votre répertoire d'images, une option est de le paramétrer dans votre configuration apache:
 *  Restriction du listage de répertoire au dossier des images

Vérifier le fichier .htaccess
Le répertoire  du dossier d'installation MediaWiki contient un fichier .htaccess contenant des paramètres de configuration. Le but de ce fichier est de rendre le dossier de téléversement plus sécurisé, et si vous placez votre répertoire de téléversement ailleurs, il est recommandé de copier également le fichier .htaccess vers un autre endroit, ou d'appliquer cette configuration directement sur le serveur. Toutefois, certains de ces paramètres de configuration peuvent être à l'origine de conflits ou d'erreurs, selon la façon dont le serveur est configuré.

Quelques éléments à prendre en compte:

Avant MediaWiki 1.27, si vous avez un gestionnaire 404 personnalisé pour générer des miniatures avec le script, les règles de ré-écriture dans ce fichier .htaccess pourraient annuler les règles pré-existantes, parce qu'il ne dispose pas de l'option.
 * Si le serveur ne permet pas de modifier ou de retirer des paramètres des fichiers .htaccess, demander l'accès à un fichier placé dans ce dossier peut occasionner l'erreur générique "HTTP 500 error". Si tel est le cas, vous devrez décommenter les lignes, et appliquer ces instructions directement sur les fichiers de configuration du serveur. Les instructions qui ont le plus de chances de causer des problèmes sont  - qui empêche les fichiers HTML et PHP d'être renvoyés en HTML -, et   - qui empêche les fichiers PHP d'être parsés et exécutés en tant que tels sur le serveur.

Paramétrer le téléversement sur on/off
Dans MediaWiki version 1.5 et supérieures, l'attribut qui doit être paramétré est dans  et est fixé de la manière suivante:

Pour désactiver la fonctionalité de téléversement, initialisez l'attribut à 'false':

Dans les versions plus anciennes du logiciel, l'attribut à paramétrer se situe dans , mais il est placé plus haut, par exemple. La valeur par défaut est la suivante:

Inverser la valeur pour activer les téléversements:

Utilisation d'un répertoire central
InstantCommons est une caractéristique, activée par un changement dans la configuration, qui vous donne un accès immédiat aux millions de fichiers libres (dont la licence est libre) de Wikimedia Commons.

Permissions de téléversement
Par défaut, tous les utilisateurs enregistrés peuvent téléverser des fichiers. Pour limiter cela, vous devez modifier :


 * Pour empêcher les utilisateurs standards de téléverser des fichiers :


 * Pour créer un groupe spécial nommé « uploadaccess », et autoriser les membres de ce groupe à téléverser des fichiers :


 * Pour autoriser les utilisateurs « autoconfirmés » (non débutants) à téléverser des fichiers :

Le droit de remplacer des fichiers existants est géré par une permission spéciale, appelée :


 * Pour empêcher les utilisateurs standards d'effacer des fichiers existants :


 * Pour autoriser les utilisateurs « autoconfirmés » (non débutants) à remplacer des fichiers existants:

Si un fichier des dépôts extérieurs (ForeignFileRepo) est configuré, le droit de remplacer localement ces fichiers est géré par une permission spéciale, appelée :


 * Pour empêcher les utilisateurs standards d'effacer localement les fichiers de dépôt :


 * Pour autoriser les utilisateurs « autoconfirmés » (non débutants) de remplacer localement les fichiers de dépôts:

Voir Manual:User rights pour plus de détails sur les droits des utilisateurs, et Manual:Preventing access pour plus d'informations sur les limitations des droits.

Configuration des types de fichier
Vous pouvez ajouter $wgFileExtensions dans le fichier LocalSettings.php pour autoriser les téléversements des autres types de fichiers souhaités. Par exemple, vous pouvez changer la ligne de $wgFileExtensions pour obtenir quelque chose comme

ou

ou

Cependant, certaines extensions de fichier sont blacklistées ($wgFileBlacklist) et ne peuvent pas être téléversées, même si elles sont ajoutées à $wgFileExtensions. Pour téléverser les fichier dont les extensions sont blacklistées, vous devez modifier la blacklist. Par exemple, pour autoriser les utilisateurs à téléverser des exécutables:

De plus, $wgMimeTypeBlacklist empêche certains types de fichier basés sur des types MIME; les fichiers .zip, par exemple, sont interdits car basés sur des types MIME (MediaWiki version 1.14 à 1.17).

Vous pouvez aussi paramétrer

Pour autoriser les plupart des types de fichiers. Cependant, les types de fichiers blacklistés et les types MIME ne seront toujours pas permis.

Si vous recevez l'erreur "The file is corrupt or has an incorrect extension", assurez-vous que la détection des types MIME fonctionne correctement.

Si vous décidez d'autoriser n'importe quel type de fichier, assurez-vous que votre détection MIME fonctionne et pensez à.

Pour activer l'extension zip (testée avec MediaWiki v1.19.23) le paramétrage suivant sera nécessaire dans le fichier LocalSettings.php:

Connexion
Par defaut les téléversements anonymes ne sont pas autorisés. Vous devez vous enregistrer et vous connecter avant que le lien upload file (téléverser un fichier) n'apparaisse dans la boîte à outils.

Affichage des vignettes
Pou les informations concernant le rendu automatique des images ou la génération des vignettes, voir . Pour les problèmes avec les vignettes, voir Vignettes d'images non opérationnelles ou absentes.

Si le fichier n'est pas visuel (comme une image ou une vidéo) une icône de fichier est utilisée en remplacement. Ceux-ci sont générés par la fonction  dans la classe File dans le groupe FileRepo. Les icônes rangées dans «  » dans un format «   ».

Définir la taille maximale du fichier téléversé
Par défaut, le code de configuration dans limite la taille des fichiers à téléverser à 2 mégabytes (et la taille maximum pour une opération POST à 8 mégabytes). Pour permettre le téléversement de fichiers plus longs, modifiez ces paramètres dans php.ini:
 * , 8 megabytes de long par défaut
 * , 2 megabytes de long par défaut

Ceci peut nécessiter un accès root sur le serveur. (Si vous vous trouvez sur un hôte partagé, contactez votre administrateur système.)

L'endroit où se trouve le fichier php.ini dépend de la distribution que vous utilisez. (Essayez « locate php.ini » ou « php -i » pour trouver l'emplacement de votre fichier de configuration.)
 * Recherche du fichier php.ini

Il est important de modifier le fichier php.ini du répertoire apache2. Par exemple, on peut trouver un php.ini système par défaut sur  mais ausis un autre sur. Si vous utilisez mod_php (cas le plus courant), l'endroit le plus probable pour le fichier php.ini correct est dans  ou. Pour php-fastcgi, modifiez /etc/php5/cgi/php.ini.

Si vous avez plus d'un site web hébergé sur un serveur et que vous voulez faire les modifications uniquement pour MediaWiki, insérez dans votre /etc/apache2/sites-enabled/your_wiki_site.com, dans  :
 * Multiples sites web hébergés sur un serveur

Les deux initialisations ci-dessus fonctionnent également dans un fichier .htaccess si votre site utilise mod_php. Si votree site utilise PHP >= 5.3 et le permet, vous pouvez à la place, mettre les directives de php.ini dans des fichiers .user.ini.


 * limites des serveurs web

Votre serveur web peut imposer d'autres limites sur la taille des fichiers autorisés pour le téléversement. Pour Apache, un des paramètres importants est LimitRequestBody. For Nginx, client_max_body_size is the relevant setting. For Lighttpd, server.max-request-size is what may need modification.

Ubuntu 16.04:

(sudo /etc/init.d/php5-fpm restart in Linux, for example.)


 * avertissement de téléversement de fichiers trop volumineux

MediaWiki lui-même éméet un avertissement si vous essayez de téléverser des fichiers plus gros que ce qui spécifié par l'option. This is independent of the hard limit imposed by PHP.

Les modifications temporaires des limites de téléversement (quand vous utilisez de multiple wikis sur une ferme, par exemple) peuvent être modifiées en ajoutant les lignes :
 * limites de téléversement temporaire

to the MediaWiki LocalSettings.php configuration file for each wiki. Dans cet exemple la limite PHP est fixée à 50 Mb. Note that these settings will not override the maximum settings set above (since the core php.ini and apache2 php.ini files set the absolute maximum). This method sets maximums that are less than the absolute maximum.


 * limite de téléversement IIS7

  

Avec la taille ci-dessus maxAllowedContentLength, les utilisateurs peuvent téléverser des fichiers qui ont une taille de 50.000.000 octets (50 MB). This setting will work immediately without restarting IIS services. The web.config file is located in the root directory of your web site.

Pour permettre le téléversement de fichiers jusqu'à 2 Giga:

ajoutez les lignes suivantes à LocalSettings.php:

Modifiez aussi les lignes suivantes de :

In the IIS web.config file, override the value of maxRequestLength. Par exemple, l'entrée suivante dans web.config permet aux fichiers qui font 2 gigabytes (GB) ou moins, d'être téléversés :

Avec IIS 7, vous avez aussi besoin de le configurer pour autoriser les téléversements volumineux. This is found by clicking “Request Filtering > Edit Feature Settings” in the IIS section in the middle of the window. Set the ”Maximum allowed content length (Bytes)” field to 2147482624. If you don’t see "Request Filtering" in the IIS section, it needs enabled via Internet Information Services > World Wide Web Services > Security in the "Turn Windows features on or off" area in Control Panel.

Si le conseil ci-dessus ne permet pas de longs téléversements, alors ouvrez une fenêtre de commande et exécutez la commande suivante :

Permettre le téléversement des fichiers Java JAR
Par défaut, MediaWiki va analyser tous les téléversements qui semblent être des archives ZIP et rejeter ceux qui contiennent des fichiers Java .class. Ceci est une mesure de sécurité pour empêcher les utilisateurs de téléverser une applet Java malicieuse. For non-public sites only, use the following to disable this check:

This setting can be used as a work around for allowing mimetypes to be accepted indiscriminately. Par exemple, si cvous essayez de téléverser un fichier .doc créé par Word 2007, peu importe la quantité de texte que vous fournissez et que le type de contrôle de MIME que vous invoquez ou que vous banissez, vous recevrez le message :


 * The file is a corrupt or otherwise unreadable ZIP file. It cannot be properly checked for security.

.doc files saved by Word 2007 (and possibly later versions) contain a small embedded ZIP archive storing metadata that is not representable in the binary .doc format as used by earlier versions of Word. This embedded ZIP data confuses the Java archive scanner, causing the .doc file to be rejected. Les fichiers dans le nouveau format de fichier .docx sont des archives ZIP valided dans leur totalité, et peuvent être téléversées normalement sans initialiser.

Téléversement direct à partir d'une URL ("Sideloading")
Si vous voulez autoriser un utilisateur à téléverser directement des fichiers à partir d'une URL, au lieu d'utiliser un fichier se trouvant en local sur leur ordinateur, fixez.

Par défaut, les téléversement par URL ne sont possibles uniquement en utilisant l'API (ou des extensions telles que UploadWizard). Pour rendre l'option utilisable, dans Special:Upload, vous devez fixer à true également. Sur l'IHM de téléversement, vous verrez ensuite un champ supplémentaire pour l'URL, sous le champ usuel du nom de fichier. The URL field is greyed out per default, but can be activated by activating the radiobutton (checkbox) to the left of the field.

Pour utiliser cette fonctionalité, les utilisateurs doivent avoir le droit utilisateur. This right was granted to sysops by default until MediaWiki 1.20 but it now needs to be granted explicitly. To allow this to normal users, set Rappelez-vous qu'en autorisant les téléversements directement à partir d'un point arbitraire du web, vous risquez de ramenter un contenu aléatoire, du matériel non désiré, et cela pourrait être confondu avec une invitation à téléverser quelque chose que tout le monde pourrait voir sur le web.

Restituer les images
Undeleting images is possible as an option since MediaWiki 1.8, and enabled by default since MediaWiki 1.11.

Prior to MediaWiki 1.11, you can enable undeletion of images by setting = true. Since version 1.11, the behavior is controlled by, and deleted files are per default stored in /deleted. Since version 1.17, $wgFileStore has been deprecated and should be used instead.

Téléversements en nombre
Un nombre d'outils sont disponibles pour téléverser des fichiers multiples en une seule fois plutôt que au coup par coup :

Répertoire de téléversement
Quand une image est téléversée, plusieurs choses sont créées :


 * 1) An article in the file namespace with the name of the file, e.g. File:MyPicture.png. This page is stored and can be edited like any other page.
 * 2) Le fichier lui-même est rangé dans le dossier du système de fichiers, qui est configuré dans  ou vers un de ses sous-répertoires (voir ci-dessous).
 * 3) If necessary and thumbnailing is available, thumbnailed versions of the file will be created when necessary (such as for the usage on the file description page. These are stored in the thumb directory of the image directory, in a separate directory for each main file.

If is enabled (by default), MediaWiki creates several subdirectories in the images directory.

Si  est fixé à , les fichiers téléversés seront distribués dans les sous répertoires de $wgUploadDirectory basés sur les deux premiers caractères de la valeur de hachage md5 du nom de fichier (par exemple $IP/images/a/ab/foo.jpg) Creation of such subdirectories is handled automatically. This is used to avoid having too many files in one folder because some filesystems don't perform well with large numbers of files in one folder.

Si vous ne maintenez qu'un petit wiki avec quelques images téléversées, vous pouvez le mettre à off en fixant, toutes les images sont téléversées dans $wgUploadDirectory lui-même. (par exemple $IP/images/foo.jpg)

Les sites multiwiki
Ne pas faire ainsi va mystérieusement casser le téléversement des images.
 * Make sure you've changed the site location in LocalSettings.php from, e.g. /var/lib/mediawiki to wherever your installation is, and created a writeable images directory (most of the rest can be symlinked).

Configurer le formulaire de téléversement
Le message du formulaire de téléversement fourni avec l'installation par défaut de MediWiki (qui apparaît quand vous cliquez sur le lien « Téléverser un fichier » ou que vous allez sur le lien Special:Upload ) peut ne pas vous convenir.

For that case you can edit MediaWiki:Uploadtext contents and provide your own text. If your wiki site is multilanguage don't forget to edit localized versions like MediaWiki:Uploadtext/de.

Sur la page MediaWiki:Licenses vous pouvez personnaliser une liste déroulante de licences pour les téléversements sur votre site.

Take into account that localized versions like MediaWiki:Licenses/de won't work by default. To enable them you must configure the variable.

Modifiez MediaWiki:Upload-default-description pour ajouter un texte initial au champ « Summary » de votre formulaire de téléversement (par exemple le site de votre wiki possède un modèle universel pour le résumé des téléversements et vous voulez que chacun utilise ce modèle).

See also:

Problèmes connus sous Windows
Running MediaWiki on Windows server has some restrictions in allowed filenames, due to a PHP bug. PHP ne peut pas gérér les noms de fichiers possèdant des caractères non-ascii, et MediaWiki refusera de téléverser les fichiers contenant de tels caractères afin d'empêcher l'échec du téléversement, avec le message .

Since MediaWiki 1.31 MediaWiki can handle filenames with non-ascii characters if it's using PHP 7.1 or later.

Known problems with database names having non-alphanumeric characters
Si contient des caractères non alphanumériques, le téléversement peut échouer avec des erreurs comme Could not create directory « mwstore://local-backend/local-public/&lt;path&gt; ». . This is caused by an internal check for valid container name for file backend, but it's constructed using $wgDBname.

Depuis MediaWiki 1.26, les téléversements sont permis si $wgDBname contient des points.