Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 8, 2007 16:54:47

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

xml-rpc сохранение файла

Странная вещь твориться.
Клиент:

import xmlrpclib

server = xmlrpclib.Server('http://localhost:8888')

fil = open('file','r')
cont = fil.read()
fil.close()
x = xmlrpclib.Binary(cont)
server.send_file(x)


Сервер:

import SimpleXMLRPCServer
import SocketServer

class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
pass

class Some:
def __init__(self):
pass

def send_file(self, data):
f = open('file','w')
f.write(data)
f.close()
return ‘Ok’

if __name__ == “__main__”:
server = SimpleThreadedXMLRPCServer((“localhost”, 8888))
server.register_instance(Some())
server.serve_forever()


Пытаюсь передать файл, файл передается, но не сохраняется. Перерыл уже большую часть гугла, но это не помогло - такое впечатление. что с такой проблемой просто не сталкивались ?



Офлайн

#2 Авг. 8, 2007 19:01:31

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

xml-rpc сохранение файла

С таким сервером сохраняестся. Я переделал имя файла в ofile - чтобы не перепутать.
И еще. data - объект типа Binary, его содержимое - в data.data. В этом, наверное, и была ошибка.
Еще. Следуя настоятельной рекомендации bialixa, всегда открывай файлы в режиме ‘rb’ или ‘wb’, если не знаешь твердо, почему нужно сделать иначе.


import SimpleXMLRPCServer
import SocketServer

class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
pass

class Some:
def __init__(self):
pass

def send_file(self, data):
f = open('ofile','wb')
f.write(data.data)
f.close()
return ‘Ok’

if __name__ == “__main__”:
server = SimpleThreadedXMLRPCServer((“localhost”, 8888))
server.register_instance(Some())
server.serve_forever()
ЗЫ. Спасибо за примерчики. Запустились сразу же без правок. Наглядно показав ошибку.
Может, со временем это станет принятой здесь практикой?



Офлайн

#3 Авг. 9, 2007 12:28:09

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

xml-rpc сохранение файла

Работает, Спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version