API:Upload/tr

Bir dosya yüklemek için POST isteği.

API aracılığıyla dosya yüklemenin üç yöntemi vardır:


 * 1) Yerel bir dosyayı doğrudan yükleme
 * 2) URL'den bir dosyanın kopyasını karşıya yükleme
 * 3) Parçalar halinde yerel dosya yükleme

Bu yöntemlerin tümü için  hakkına sahip bir hesap gerekir.



API belgesi


Yükleme uyarıları
Bir dizi uyarı koşulu nedeniyle yüklemenin başarısız olabileceğini unutmayın. Bu,  ayarlanarak geçersiz kılınabilir. Bazı dikkate değer uyarılar şunları içerir:


 * exists: Belirtilen ada sahip bir dosya zaten var. Bu uyarı yoksayılırsa, yüklenen dosya mevcut dosyanın yerini alacaktır.
 * no-change: Belirtilen ada sahip bir dosya zaten var ve yüklenen dosyayla tamamen aynı.
 * duplicate-version: Belirtilen ada sahip bir dosya zaten var ve bu dosyanın eski sürümü yüklenen dosyayla tamamen aynı.
 * was-deleted: verilen ada sahip bir dosya eskiden vardı ama silindi.
 * duplicate: Yüklenen dosya farklı (veya aynı) bir ad altında var. Bir kopya yüklemek istenmeyebilir.
 * duplicate-archive: Yüklenen, farklı (veya aynı) bir ad altında mevcuttu ancak silindi. Bu, dosyanın uygunsuz olduğunu ve yüklenmemesi gerektiğini gösterebilir.
 * badfilename: The file name supplied is not acceptable on this wiki, for instance because it contains forbidden characters

Örnek
Herhangi bir POST isteği yapmak çok adımlı bir işlemdir:

  üzerinde açıklanan yöntemlerden birini kullanarak oturum açın.  GET'i:

 Dosya yüklemek için CSRF anahtarıyla bir POST isteği gönderin. 



Örnek 1: Doğrudan yerel bir dosya yükleyin
Dosyaları doğrudan yüklerken, istek İçerik Türü veya şifreleme olarak  kullanmalıdır,   çalışmaz.



Yanıt


Örnek kod


Örnek 2: URL'den dosya yükleyin
Bu, vikinin yerel ayarlarında  ve   kullanıcı hakkına sahip bir hesap gerektirir.



Yanıt


Örnek kod
<span id="Example_3:_Upload_file_in_chunks">

Örnek 3: Dosyayı parçalar halinde yükleyin
Tek bir HTTP POST'a büyük bir dosya yüklemek güvenilmez olabileceğinden, API ayrıca dosyanın bazı bölümleriyle birden fazla istekte bulunduğunuz yığınlanmış bir yükleme modunu da destekler. Bu, MediaWiki sürüm 1.20 ve sonraki sürümlerde kullanılabilir, ancak sürüm 1.25'ten önce SVG'ler yığın yükleme yoluyla yüklenemedi. Bu, tarafından FileAPI destekleyen tarayıcılarda kullanılır ve 1 megabaytlık parçalara dosya yükler, ancak kendi boyutunuzu seçebilirsiniz. Bu, stash modu ile birlikte çalışır, bir dosyayı parçalara ayırır ve sonunda taahhüt eder.

<span id="Step_1:_Pass_content_for_the_first_chunk">

1. Adım: İlk yığın için içerik iletin


Son yığın hariç tüm parçalar için bunu alacaksınız:

<span id="Step_2:_Pass_filekey_parameter_for_second_and_further_chunks">

2. Adım: İkinci ve sonraki parçalar için filekey parametresini iletin
parametresini önceki devam eden sonuçtan da alacaksınız:



Son yığın için bunu alacaksınız:

<span id="Step_3:_Final_upload_using_the_filekey_to_commit_the_upload_out_of_the_stash_area">

Adım 3: Stash alanından yüklemeyi tamamlamak için filekey kullanarak son yükleme


Son yüklemenin sonucu, yığınlanmamış bir yüklemeden alacağınızla karşılaştırılabilir tam, doğru  nesnesini içerir.

<span id="Sample_code">

Örnek kod
<span id="Possible_errors">

Olası hatalar
Ayrıca yukarıdaki #Yükleme uyarıları ile ilgili bölüme bakın.

<span id="Parameter_history">

Parametre geçmişi

 * v1.21:    tanıtıldı
 * v1.19:      tanıtıldı
 * v1.18:    tanıtıldı
 * v1.17:,  ,  ,   tanıtıldı
 * v1.18:  kullanımdan kaldırıldı
 * v1.17:  kullanımdan kaldırıldı

<span id="Additional_notes">

Ek notlar

 * Stash'a devam eden bir yüklemenin durumunu veya stash'tan yayınlanan bir dosyanın ilerlemesini kontrol etmek için bir POST isteği gönderin:


 * Aşağıda, çok parçalı POST ile  arasındaki tek bir öbek örneği verilmiştir. Tüm parçalarınızı başarıyla yükledikten sonra vikide görünmesi için dosyanın taslağını kaldırmanız gerektiğini unutmayın.

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

Ayrıca bakınız

 * - Kullanıcının oturum açmasına izin verir
 * - Kullanıcının bir sayfayı içe aktarmasına izin verir
 * - Kullanıcı gruplarına göre yükleme sınırları