【发布时间】:2011-03-12 01:17:34
【问题描述】:
我正在尝试将图像(现在只是一张随机图片)上传到我的 MediaWiki 网站,但我不断收到此错误:
“参数'action'的值无法识别:上传”
这是我所做的(网站网址和密码已更改):
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import wikitools
>>> import poster
>>> wiki = wikitools.wiki.Wiki("mywikiurl/api.php")
>>> wiki.login(username="admin", password="mypassword")
True
>>> screenshotPage = wikitools.wikifile.File(wiki=wiki, title="screenshot")
>>> screenshotPage.upload(fileobj=open("/Users/jeff/Pictures/02273_magensbay_1280x800.jpg", "r"), ignorewarnings=True)
Traceback (most recent call last):
File "", line 1, in
File "/Library/Python/2.6/site-packages/wikitools/wikifile.py", line 228, in upload
res = req.query()
File "/Library/Python/2.6/site-packages/wikitools/api.py", line 143, in query
raise APIError(data['error']['code'], data['error']['info'])
wikitools.api.APIError: (u'unknown_action', u"Unrecognized value for parameter 'action': upload")
>>>
根据我在 google 上找到的信息,当前的 MediaWiki 不支持上传文件。但这太荒谬了……一定有什么办法吧?
我没有与 wikitools 软件包结婚——任何方式都值得赞赏。
编辑:我在我的 LocalSettings.php 中设置了 $wgEnableUploads = true,我可以手动上传文件,而不是通过 python。
编辑:我认为 wikitools 会自动获得一个编辑令牌。我附上了上传方法。在它发出 API 请求之前,它会调用 self.getToken('edit'),我认为应该由哪个来处理它?我会尝试一下,看看是否手动添加它可以解决问题。
这也是我的第一个问题,所以如果您不能发布其他人的代码或其他内容,请告诉我。谢谢!
【问题讨论】:
-
您是否在 MediaWiki 上启用了文件上传功能? mediawiki.org/wiki/Manual:Configuring_file_uploads
标签: python file-upload mediawiki