Привет! Столкнулся с проблемой загрузки подготовленного файла на web-сервер. Досконально изучить сейчас всё не могу, по примерам, найденным в Интернете не получается.
Есть страничка, на которой выбирается файл с локального компьютера, нажимается кнопка и он загружается. В коде фрейма, на котором находится кнопка для загрузки, есть следующая строка:
<input type='button' value='Go!' class='normalbutton' onClick="this.value='Working...'; document.getElementById('fileform').action='/probe/core/importExport/data.xml?'+'probe&';document.getElementById('fileform').submit()"> </input></td>
Когда я нажимаю на кнопку загрузки, в консоли браузера появляется post запрос вида
x.x.x.x/probe/core/importExport/data.xml?probe& и соответсвенно код 200.
В Питоне код:
cookie = cookielib.CookieJar()
req = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
req.addheaders = [('User-Agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11'), ]
resp = req.open('http://'x.x.x.x') # - авторизуюсь, для заливки нужен доступ
print 'CODE AUTH: ' , resp.getcode() # - возвращает 200, всё ок
# и пробую загрузить файл:
params = { 'fileupload': open('eth_streamlist_ex.xml', 'r') }
data_encoded = urlencode(params)
upl = req.open('http://x.x.x.x/probe/core/importExport/data.xml?probe&', data_encoded)
print 'CODE UPLOAD : ',upl.getcode() # - возвращает 200, но изменений со стороны сервера нет, файл не загружен.
На stackoverflow пишут что для такой загрузки нужно использовать модуль poster, но нет ли более простого способа без сторонних библиотек? Может я ссылку для загрузки не верно указываю?