LINUX.ORG.RU

Как отправить файл на сервер?

 , ,


1

2

Я создавал один тред про отправку SOAP-отчетов на север, там мне посоветовали библиотеку SUDS. Я чуток погуглил и понял, что она мне, в общем то, не нужна. У меня имеются уже готовые отчеты (текстовые документы, внутри, собственно, soap-сообщение), т.е. мне их не нцжно отправлять, нужно только отправить их на сервер (IP+port).

Нагуглил httplib и urllib, что выбрать? М.б. вообще что то другое?

Повторюсь - задача заключается в простой отправке текстового файла на сервер.

Deleted

Что за сервер? кто слушает этот ваш "(IP+port)"? Когда вы уже научитесь излагать мысли технически, а не как блондинка?

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)

Да ты гонишь. Первая ссылка в гугле по запросу 'python urllib upload file':

import urllib, urllib2
data = urllib.urlencode({'filename': open(uploadfile, "rb"),
                        'description': 'upload test'})
post_req = urllib2.Request(upload_file_url, data)
result = urllib2.urlopen(post_req)

NeverLoved ★★★★★
()

Судя по твоему описанию, этот сервер ничего не знает о том, что ему отправляют файлы.

Короче реши как именно они туда будут попадать, а уж нужные либины потом нагуглятся легко.

Hater ★★
()
Ответ на: комментарий от Hater

Дело имел только с примитивными (отправил запрос - прочитал ответ). Все работали поверх http. Могу ошибаться :)
Примеров не набросаешь?

NeverLoved ★★★★★
()
Ответ на: комментарий от NeverLoved

SOAP по сути только специфицирует формат сообщений. HTTP не обязан быть протоколом для SOAP. Ты можешь гонять что угодно. Например мне приходилось гонять его по JMS.

Hater ★★
()

Как отправить файл на сервер?

Клиентом-отправляльщиком /thread

anonymous
()
Ответ на: комментарий от sdio

Когда вы уже научитесь излагать мысли технически, а не как блондинка?

Ну первый раз я с вебом работаю.

Что за сервер?

В смысле?

кто слушает этот ваш "(IP+port)"?

Программулина которая хавает soap.

Hater, поверх http.

Накидал вот таой вариант, что то не пашет пока, завтра буду разбераться:

import urllib, urllib2, os

http_header = {
    "Accept-Encoding": "gzip,deflate",
    "Content-Type": "text/xml;charset=UTF-8",
    "SOAPAction": "",
    "Content-Length": str(os.path.getsize("SendPlanOrdersClinic.txt")),
    "Host": "13.40.21.32:8888",
    "Connection": "Keep-Alive",
    "User-Agent": "Apache-HttpClient/4.1.1 (java 1.5)",
}

import urllib, urllib2
data = urllib.urlencode({'filename': open("SendPlanOrdersClinic.txt", "rb")})
print data
post_req = urllib2.Request("http://13.40.21.32:8888/a/b", data, http_header)
print "req"
result = urllib2.urlopen(post_req)
print "post"

f = open("res.html", "w")
f.write(result.read())
f.close()

Deleted
()
Ответ на: комментарий от xtraeft

И, что очень важно,

что то

что-то

anonymous
()
Ответ на: комментарий от anonymous

там на микроконтроллерах своя специфика

anonymous
()
Ответ на: комментарий от Deleted

етить.

сервер на том конце какой метод предоставляет для приема файлов? если никакой - то никакими ухищрениями с клиентом оного сервера его туды не положить. Если предоставляет - то тупо юзать этот метод.

arkhnchul ★★★
()

Bizun Bizun

Bizun Bizun Bizun

не по-детски туп.

Ла-ла-ла! Ла-ла-ла-ла-ла!

anonymous
()
Ответ на: комментарий от arkhnchul

сервер на том конце какой метод предоставляет для приема файлов? если никакой - то никакими ухищрениями с клиентом оного сервера его туды не положить. Если предоставляет - то тупо юзать этот метод.

Прошу прощенья за тупняк, первый раз с такой фигней сталкиваюсь. Для файла (который есть в примере кода выше) предоставляется метод с таким же именем.

Deleted
()

Короче разобрался, suds таки подходит.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.