Я пытался загрузить изображение в свою MediaWiki (v 1.19), настроенную на моем локальном хосте. XAMPP и все остальное настроено и работает. Я могу выполнять другие действия с помощью API.
Но мне не повезло с использованием любого из классов FileUpload/Post. Поскольку в документации почти нет ни одного объяснения того, как выполнить эту задачу, я пробовал несколько вещей, так что это мой код:
//The bot i'm using. Works fine for other purposes.
MediaWikiBot b = new MediaWikiBot("http://localhost/");
b.login("Bot", "password");
//The file I want to upload
File f = new File("/home/op/Necro MP FILES/NPC/GIF/Air Screamer.gif");
SimpleFile sf = new SimpleFile(f.getName(), f);
Но я застрял там. Я не могу найти ни одного метода, который я мог бы использовать для фактической загрузки файла. Я пытался использовать FileUpload, но я ничего не могу использовать.
FileUpload fu = new FileUpload(sf, b);
Он просто создает объект ContentProcessable, и было бы здорово, если бы это работало:
b.performAction(fu);
Но не повезло. У меня закончились вещи для тестирования. Я пытался сделать очень похожую процедуру, используя как HttpBot, так и HttpActionClient, оба должны работать, но с тем же результатом.
Кто-нибудь имеет опыт и может указать мне, что мне не хватает? Мне нужно загрузить около 1500 изображений, и я не собираюсь делать это вручную.
Полный справочник по jwbf находится здесь: http://jwbf.sourceforge.net/tests/
Это журнал, который дает приведенный выше код:
16:07:30.837 [main] DEBUG n.s.j.core.actions.HttpActionClient - /index.php?title=Air+Screamer.gif&action=edit&dontcountme=s
16:07:30.838 [main] DEBUG n.s.j.core.actions.HttpActionClient - message (GET FileUpload) is:
hostPath : http://localhost
queryPath: /index.php?title=Air+Screamer.gif&action=edit&dontcountme=s
16:07:31.423 [main] INFO n.s.j.m.actions.editing.FileUpload - WRITE: Air Screamer.gif
16:07:31.424 [main] DEBUG n.s.j.core.actions.HttpActionClient - /index.php?title=Special:Upload
16:07:31.426 [main] DEBUG n.s.j.core.actions.HttpActionClient - message (POST FileUpload) [continuing req] is:
hostPath : http://localhost
queryPath: /index.php?title=Special:Upload