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échargement
Notez qu'un téléchargement 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échargé remplacera le fichier existant.
 * no-change: Un fichier avec le nom donné existe déjà et est exactement le même que le fichier téléchargé.
 * duplicate-version: 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échargé.
 * was-deleted: un fichier avec le nom donné utilisé pour exister mais a été supprimé.
 * duplicate: Le fichier téléchargé existe sous un nom différent (ou identique). Le téléchargement d'un doublon peut être indésirable.
 * duplicate-archive: Le fichier téléchargé 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échargé.

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écharger un fichier. 



Exemple n°1 : téléverser directement un fichier local
Lorsque vous téléchargez 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échargement d'un fichier énorme dans un seul HTTP POST peut être peu fiable, l'API prend également en charge un mode de téléchargement segmenté, où vous effectuez plusieurs demandes avec des parties 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échargé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 en 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 : téléversement final utilisant filekey pour sauvegarder le téléversement hors de la zone temporaire


Le résultat du téléchargement final inclura l'objet  complet et précis, comparable à ce que vous obtiendriez d'un téléchargement non segmenté.

<span id="Sample_code">

Exemple de code
<span id="Possible_errors">

Erreurs possibles
Voir aussi la section #Upload warning 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échargement en cours vers la corbeille ou la progression d'un fichier publié à partir de la corbeille, 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échargé 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 de téléchargement selon les groupes d'utilisateurs