API talk:Import
Add topic2014-04-11 Example of code to import xml into wiki using api import
[edit]I spent a lot of time and can not figure out the right code to import wiki text into wiki. (Previously I exported this wiki text from wiki.) I try to use Ajax POST request with xhr.setRequestHeader('Content-Type', 'multipart/form-data; ... and get errors like the following
- "<error code="badupload_xml" info="File upload param xml is not a file upload; be sure to use multipart/form-data for your POST and include a filename in the Content-Disposition header."/>".
- <?xml version="1.0"?><api><error code="help" info="" xml:space="preserve">
Please, could somebody give ANY working PHP (and/or Ajax and/or HTML) code that uses mediawiki api "import function". Thanks in advance. Roman (t3531350@yahoo.com)
Answer to the question (working code):
<div>
<fieldset>
<legend>Загрузить XML-данные</legend>
<form enctype="multipart/form-data" method="post" action="/api.php" action="submit" id="mw-import-upload-form">
<p></p>
<input type="hidden" name="action" value="import" />
<input type="hidden" name="source" value="upload" />
<table id="mw-import-table-upload">
<tr>
<td class="mw-label">
<label for="xmlimport">Имя файла:</label>
</td>
<td class="mw-input">
<input id="xmlimport" type="file" value="" name="xml" />
</td>
</tr>
<tr>
<td class="mw-label">
<label for="mw-import-comment">Примечание:</label>
</td>
<td class="mw-input">
<input name="log-comment" size="50" value="" id="mw-import-comment" type="text" />
</td>
</tr>
<tr>
<td class="mw-label">
<label for="mw-interwiki-rootpage-upload">Корневая страница (необязательно):</label>
</td>
<td class="mw-input">
<input name="rootpage" size="50" value="" id="mw-interwiki-rootpage-upload" type="text" />
</td>
</tr>
<tr>
<td></td>
<td class="mw-submit">
<input type="submit" onclick = "readBlob()" value="Загрузить файл" />
</td>
</tr>
</table>
<input type="hidden" value="51cdbc...ee63bc1d52d+\" name="token" />
</form>
</fieldset>
</div>
- Here's a working example: https://github.com/nischayn22/MediaWiki_Api/ Nischayn22 (talk) 08:59, 13 October 2018 (UTC)
2013-09-19
[edit]- Is this really only for Version 1.15?
- How would an import via API work in 1.20 or up?
- How to handle the following error?
<?xml version="1.0"?><api><error code="nofile" info="You didn't upload a file" /></api>
workaround
[edit]in import.php:
static function newFromUpload( $fieldname = "xmlimport" ) {
// instead of: $upload =& $_FILES[$fieldname];
$upload= reset($_FILES);
somehow the $_FILES array does not have it's index by name any more at this point. $_FILES["xml"] is not found. With a dummy api.php it can be shown that $_FILES has the correct setting in the POST initially:
<?php
// var_dump($_FILES);
echo("FILES=".print_r($_FILES)."\n");
// echo("FILES - keys=".print_r(array_keys($_FILES))."\n");
?>
Can Import Json Output From External Wiki API Url?
[edit]Can we import a json file? A json url? A live external wikipage? An XML file? A plain wikitext file? etc