【发布时间】:2018-02-22 11:59:54
【问题描述】:
为了验证 WordPress 实例的安装,我们正在编写 Python 单元测试。其中一项测试应执行以下操作:将图像上传到 WordPress。
为了做到这一点,我正在使用 Requests 库。
当我通过 Firebug 检查 /wp-admin/media-new.php 页面中的表单时(表单信息,我得到以下信息): 形式 id:文件格式 姓名 方法:邮寄 行动:http://localhost:8000/wp-admin/media-new.php
元素 id: plupload-browse-button 类型:按钮 值:选择文件
id:异步上传 名称:异步上传 类型:文件 标签:上传
id:html-上传 名称:html-上传 类型:提交 值:上传
id: post_id 名称:post_id 类型:隐藏 值:0
id:_wpnonce 名称:_wpnonce 类型:隐藏 值:c0fc3b80bb
id: 文件格式 名称:_wp_http_referer 类型:隐藏 值:/wp-admin/media-new.php
我相信 _wpnonce 是为每个会话生成的唯一值。因此,在尝试上传文件之前,我获取了 media-new.php 页面并获取了表单中的 _wpnonce(因此是我代码中的变量)。
我的代码如下:
with open('1.jpg', 'rb') as f:
upload_data = {'post_id': '0',
'_wp_http_referer': '/wp-admin/media-new.php',
'_wpnonce': wp_nonce,
'action': 'upload_attachement',
'name': '1.jpg',
'async-upload': f,
'html-upload': 'Upload'}
upload_result = session.post('http://localhost:8000/wp-admin/media-new.php', upload_data)
代码运行良好,upload_result.status_code 等于 200。
但是,图像从未出现在 WordPress 的媒体库中。
我相信这是一个简单的错误,但我无法弄清楚我错过了什么。
提前感谢您的帮助。
【问题讨论】:
-
我认为link 会对您有所帮助。检查上传文件夹权限。
标签: wordpress python-3.x python-requests