API:Upload/es

Solicitud POST para cargar un archivo.

Hay tres métodos de cargar archivos a través del API:


 * 1) Cargando un archivo local directamente
 * 2) Cargando una copia de un archivo desde una URL
 * 3) Cargando un archivo local en fragmentos

Todos estos métodos requieren una cuenta con el derecho.



API Documentación


Cargar advertencias
Note that an upload may fail due to a number of warning conditions. This can be overridden by setting. Some notable warnings include:


 * exists: A file with the given name already exists. If this warning is ignored, the uploaded file will replace the existing file.
 * no-change: A file with the given name already exists and is exactly the same as the uploaded file.
 * duplicate-version: A file with the given name already exists and and old version of that file is exactly the same as the uploaded file.
 * was-deleted: a file with the given name used to exist but has been deleted.
 * duplicate: The uploaded file exists under a different (or the same) name. Uploading a duplicate may be undesirable.
 * duplicate-archive: The uploaded used to exist under a different (or the same) name but has been deleted. This may indicate that the file is inappropriate and should not be uploaded.
 * badfilename: The file name supplied is not acceptable on this wiki, for instance because it contains forbidden characters

Ejemplo
Hacer cualquier solicitud POST es un proceso de varios pasos:

 Inicia sesión, a través de uno de los métodos descritos en . GET un.

 Envía una solicitud POST, con el token CSRF, para cargar un archivo. 



Ejemplo 1: Cargar un archivo local directamente
Al cargar archivos directamente, la solicitud debe usar  como Content-Type o enctype,   no funcionará.



Respuesta


Código de ejemplo


Ejemplo 2: Carga archivo desde URL
Esto requiere  en la configuración local de la wiki y una cuenta con el derecho de usuario de.



Respuesta


Código de muestra
<span id="Example_3:_Upload_file_in_chunks">

Ejemplo 3: Carga archivo en fragmentos
Dado que cargar un archivo enorme en una única POST HTTP puede no ser fidedigno, la API también admite un modo de carga fragmentado, donde puede realizar múltiples solicitudes con partes del archivo. Esto está disponible en MediaWiki versión 1.20 y superior, aunque antes de la versión 1.25, los SVG no se podían cargar a través de carga fragmentada. Esto es utilizado por en los navegadores que admiten FileAPI, cargando archivos en fragmentos de 1 megabyte, pero puedes elegir tu propio tamaño. Esto funciona en conjunción con el modo oculto, para construir un archivo en piezas y luego cometerlo al final.

<span id="Step_1:_Pass_content_for_the_first_chunk">

Paso 1: Pasa contenido para el primer fragmento


Para todos los fragmentos, excepto el último fragmento, recibirá esto:

<span id="Step_2:_Pass_filekey_parameter_for_second_and_further_chunks">

Paso 2: Pasa el parámetro filekey para el segundo y más fragmentos
Obtendrás el parámetro  del resultado de continuación anterior también:



Para el último fragmento, recibirás esto:

<span id="Step_3:_Final_upload_using_the_filekey_to_commit_the_upload_out_of_the_stash_area">

Paso 3: Carga final usando filekey para cometer la carga fuera del área oculta


El resultado de la carga final incluirá el completo, objeto preciso, comparable a lo que obtendrías de una carga no fragmentada.

<span id="Sample_code">

Código de ejemplo
<span id="Possible_errors">

Errores posibles
Consulte también la sección sobre #Carge advertencias anterior.

<span id="Parameter_history">

Historial de parámetros

 * v1.21: Introducido
 * v1.19: Introducido
 * v1.18: Introducido
 * v1.17: Introducido,  ,  ,
 * v1.18: Obsoleto
 * v1.17: Obsoleto

<span id="Additional_notes">

Notas adicionales

 * Para verificar el estado de una carga en progreso a lo oculto o el progreso de un archivo que se publica desde lo oculto, envíe una solicitud POST:

multipart POST a, representando un solo fragmento. Ten en cuenta que debes "mostrar" el archivo para que aparezca en el Wiki una vez que hayas cargado correctamente todos sus fragmentos.
 * Abajo está un ejemplo de

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

Véase también

 * - Permite a un usuario iniciar sesión
 * - Permite a un usuario importar una página
 * - Subir límites según grupos de usuarios