API:Upload/fr

Requête POST pour téléverser un fichier.

Il existe trois méthodes pour téléverser des fichiers via l'API :


 * 1) Téléverser un fichier local directement
 * 2) Téléverser une copie d'un fichier à partir d'une URL
 * 3) Téléverser un fichier local par parties

Toutes ces méthodes imposent que le compte a les droits.



Documentation de l'API


Avertissements de téléversement
Notez qu'un téléversement peut échouer en raison d'un certain nombre de conditions d'avertissement. Vous pouvez remplacer ce paramètre en définissant. Voici quelques avertissements notables :


 * exists: Un fichier portant le nom donné existe déjà. Si cet avertissement est ignoré, le fichier téléversé remplacera le fichier existant.
 * no-change: Un fichier avec le nom donné existe déjà; il est exactement le même que le fichier téléversé.
 * duplicateversions: Un fichier avec le nom donné existe déjà et l'ancienne version de ce fichier est exactement la même que le fichier téléversé.
 * was-deleted: un fichier avec le nom donné a déjà existé par le passé mais a été supprimé.
 * duplicate: Le fichier téléversé existe sous un nom différent (ou identique). Le téléversement d'un doublon peut être non souhaité.
 * duplicate-archive: Le fichier téléversé existait sous un nom différent (ou identique) mais a été supprimé. Cela peut indiquer que le fichier est inapproprié et ne doit pas être téléversé.
 * badfilename: The file name supplied is not acceptable on this wiki, for instance because it contains forbidden characters

Exemple
Faire une requête POST donnée est un processus en plusieurs étapes :

 Connectez-vous via l'une des méthodes décrites dans . Obtenir un :

 Envoyez une demande POST, avec le jeton CSRF pour téléverser un fichier. 



Exemple n°1 : téléverser directement un fichier local
Lorsque vous téléversez des fichiers directement, la requête doit utiliser  en tant que Content-Type ou enctype,   ne fonctionnera pas.



Réponse


Exemple de code


Exemple n°2 : téléverser un fichier depuis une URL
Cela nécessite  dans les paramètres locaux du wiki et un compte avec le droit d'utilisateur.



Réponse


Exemple de code
<span id="Example_3:_Upload_file_in_chunks">

Exemple n°3 : téléverser un fichier par parties
Comme le téléversement d'un gros fichier avec un seul HTTP POST peut devenir peu fiable, l'API prend également en charge un mode de téléversement segmenté, où vous effectuez plusieurs demandes contenant les parties successives du fichier. Ceci est disponible dans MediaWiki version 1.20 et supérieure, bien qu'avant la version 1.25, les SVG ne pouvaient pas être téléversés via le téléchargement groupé. Cela est utilisé par dans les navigateurs prenant en charge FileAPI, téléchargeant des fichiers en morceaux de 1 mégaoctet, mais vous pouvez choisir votre propre taille. Cela fonctionne en conjonction avec le mode stash, pour construire un fichier par morceaux et ensuite le valider à la fin.

<span id="Step_1:_Pass_content_for_the_first_chunk">

Étape n°1 : transmettre le contenu pour la première partie


Pour tous les morceaux sauf le dernier morceau, vous recevrez ceci :

<span id="Step_2:_Pass_filekey_parameter_for_second_and_further_chunks">

Étape n°2 : passer le paramètre filekey pour les morceaux suivants
Vous obtiendrez également le paramètre  à partir du précédent résultat continue :



Pour le dernier morceau, vous recevrez ceci :

<span id="Step_3:_Final_upload_using_the_filekey_to_commit_the_upload_out_of_the_stash_area">

Étape n°3 : dernier téléversement utilisant filekey pour sauvegarder le téléversement hors de la zone de réserve


Le résultat du téléversement final inclura l'objet  complet actuel, comparable à ce que vous obtiendriez avec un téléversement non segmenté.

<span id="Sample_code">

Exemple de code
<span id="Possible_errors">

Erreurs possibles
Voir aussi la section des Avertissements ci-dessus.

<span id="Parameter_history">

Historique des paramètres

 * v1.21:    ajouté
 * v1.19:      ajouté
 * v1.18:    ajouté
 * v1.17:,  ,  ,   ajouté
 * v1.18:  obsolète
 * v1.17:  obsolète

<span id="Additional_notes">

Notes supplémentaires

 * Pour vérifier l'état d'un téléversement en cours vers l'espace de réserve ou la progression d'un fichier en cours de public1tion à partir de la réserve, envoyez une demande POST :


 * Voici un exemple d'un multipart POST à, représentant un seul bloc. Notez que vous devez décompresser le fichier pour qu'il apparaisse dans le Wiki une fois que vous avez téléversé tous vos morceaux.

User-Agent: <YOUR USER-AGENT> Content-Type: multipart/form-data; boundary=--24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Host: commons.wikimedia.org Cookie: Connection: Keep-Alive

--24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="filename" Content-Length: 20

UploadTest356456.png --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="offset" Content-Length: 1

0 --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="format" Content-Length: 4

json --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="ignorewarnings" Content-Length: 1

1 --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="filesize" Content-Length: 3

971 --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="token" Content-Length: 42

<YOUR_CSRF_TOKEN_HERE> --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="stash" Content-Length: 1

1 --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b Content-Disposition: form-data; name="chunk"; filename="1.png" Content-Type: application/octet-stream Content-Length: 971

<RAW_BYTES_FROM_FILE_HERE> --24b7c3bb-fb4d-45c3-937c-11c2e0c2525b--

<span id="See_also">

Voir aussi

 * - Permet à un utilisateur de se connecter
 * - Permet à un utilisateur d'importer une page
 * - Limites du téléversement selon les groupes d'utilisateurs