MediaWiki 内部通过js API上传文件

MediaWiki内部js上传文件通过全局mw.Api对象实现。

/** 
 * MediaWiki API Demos
 */
var param = {
		filename: 'File_1.jpg',
		format: 'json',
		ignorewarnings: 1
	},
	fileInput = $( '<input/>' ).attr( 'type', 'file' ),
	submitBtn = $( '<input/>' ).attr( 'type', 'button' ).attr( 'value', 'Upload' ),
	api = new mw.Api();

$( '#bodyContent' ).append( [ fileInput, submitBtn ] );

$( submitBtn ).on( 'click', function () {
	api.upload( fileInput[ 0 ], param ).done( function ( data ) {
		console.log( data.upload.filename + ' has sucessfully uploaded.' );
	} ).fail( function ( data ) {
		console.log( data );
	} );
} );

低版本mw.Api().upload模块挂载在mediawiki.api.*,需要主动引入mediawiki.api.upload。

mw.loader.load(['mediawiki.api.upload']);

  1. MediaWiki: Api 上传
  2. MediaWiki内核文档中心:mediawiki-core
  3. MediaWiki API对象:mediawiki.api