API:Upload/de

POST-Abfrage um eine Datei hochzuladen.

Es gibt drei Methoden, um Dateien über die API hochzuladen:


 * 1) Eine lokale Datei direkt hochladen
 * 2) Eine Kopie einer Datei aus einer URL hochladen
 * 3) Eine lokale Datei stückweise hochladen

All diese Methoden erfordern ein Konto mit dem -Recht.



API-Dokumentation


Hochlade-Warnungen
Beachte, dass das Hochladen aufgrund einer Reihe von Warnbedingungen fehlschlagen kann. Dies kann durch Setzen von  überschrieben werden. Zu beachtenswerten Warnungen gehören:


 * exists: Eine Datei mit dem gegebenen Namen existiert bereits. Wenn die Warnung ignoriert wird, wird die hochgeladene Datei die existierende Datei ersetzen.
 * no-change: Eine Datei mit dem gegebenen Namen existiert bereits und ist mit der hochgeladenen Datei identisch.
 * duplicate-version: Eine Datei mit dem gegebenen Namen existiert bereits und eine ältere Version dieser Datei ist identisch mit der hochgeladenen Datei.
 * was-deleted: Eine Datei mit dem gegebenen Namen gab es bereits, jedoch wurde sie gelöscht.
 * duplicate: Die hochgeladene Datei existiert bereits unter einem anderen (oder dem selben) Namen. Das Hochladen eines Duplikats kann unerwünscht sein.
 * duplicate-archive: Die hochgeladene Datei gab es bereits unter einem anderen (oder dem selben) Namen, jedoch wurde sie gelöscht. Dies kann darauf hindeuten, dass die Datei unangemessen ist und nicht hochgeladen werden sollte.

Beispiel
Eine POST-Abfrage zu stellen ist ein mehrstufiger Prozess:

 Anmelden über eine der auf beschriebenen Methoden. Ein erhalten:

 Sende eine POST-Abfrage mit dem CSRF-Token, um eine Datei hochzuladen. 



Beispiel 1: Lade eine lokale Datei direkt hoch
Beim direkten Hochladen von Dateien muss die Abfrage  als Content-Type oder enctype nutzen,   wird nicht funktionieren.



Antwort


Beispielcode


Beispiel 2: Datei von einer URL hochladen
Dies erfordert  in den lokalen Einstellungen des Wikis und ein Konto mit dem Benutzerrecht.



Antwort


Beispielcode
<span id="Example_3:_Upload_file_in_chunks">

Beispiel 3: Datei in Chunks hochladen
Da das Hochladen einer großen Datei in einem einzigen HTTP-POST unzuverlässig sein kann, unterstützt die API eine schrittweise Hochlade-Methode, bei der du mehrere Abfragen mit Teilen der Datei stellen kannst. Dies ist ab MediaWiki Version 1.20 verfügbar, wobei bis Version 1.25 SVGs nicht über das schrittweise Hochladen hochgeladen werden konnten. Dies wird von in Browsern genutzt, die FileAPI unterstützen, wobei Blöcke von 1 Megabyte hochgeladen werden können, du jedoch deine eigene Größe auswählen kannst. Dies funktioniert in Verbindung mit dem Stash-Modus, um eine Datei aus Blöcken zusammenzubauen und am Ende zu speichern.

<span id="Step_1:_Pass_content_for_the_first_chunk">

Schritt 1: Übergebe den Inhalt für den ersten Block


Für alle Blöcke bis auf den letzten wirst du dies erhalten:

<span id="Step_2:_Pass_filekey_parameter_for_second_and_further_chunks">

Schritt 2: Übergebe den filekey-Parameter für den zweiten und weitere Blöcke
Du wirst den Parameter  aus dem vorherigen Abfrageergebnis erhalten.



Für den letzten Block wirst du dies erhalten:

<span id="Step_3:_Final_upload_using_the_filekey_to_commit_the_upload_out_of_the_stash_area">

Schritt 3: Endgültiger Upload mit filekey, um den Upload aus dem Stash-Bereich zu übernehmen


Das Ergebnis des finalen Hochladens wird das vollständige, genaue -Objekt enthalten, vergleichbar mit dem, was du bei nicht schrittweisem Hochladen erhalten würdest.

<span id="Sample_code">

Beispielcode
<span id="Possible_errors">

Mögliche Fehler
Siehe auch den Abschnitt Hochlade-Warnungen oben.

<span id="Parameter_history">

Parametergeschichte

 * v1.21: Eingeführt
 * v1.19: Eingeführt
 * v1.18: Eingeführt
 * v1.17: Eingeführt,  ,  ,
 * v1.18: Veralteter
 * v1.17: Veralteter

<span id="Additional_notes">

Zusätzliche Anmerkungen

 * Um den Status eines laufenden Hochladevorgangs zum Stash oder den Fortschritt der Veröffentlichung der Datei aus dem Stash zu überprüfen, sende eine POST-Abfrage:


 * Unten befindet sich ein Beispiel einer Multipart-POST zu, die einen einzelnen Block darstellt. Beachte, dass du die Datei entstashen musst, damit diese im Wiki erscheint, wenn alle Blöcke erfolgreich hochgeladen wurden.

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">

Siehe auch

 * - Ermöglicht einem Benutzer die Anmeldung
 * - Erlaubt einem Benutzer, eine Seite zu importieren
 * - Hochlade-Limits von Benutzergruppen