2014-06-27 4 views
0

Вот как я отправить данные от клиента (CoffeeScript & dajaxice):Сохранение и загрузка изображений с клиента на сервер с Джанго

imageData = canvas.toDataURL("image/png") 
Dajaxice.draw.saveImage(@saveImage_callback, {'image': imageData }) 

Вот как я сохранить изображение на сервере (взято из this answer)

@dajaxice_register 
def saveImage(request, image): 

    imageData = re.search(r'base64,(.*)', image).group(1) 
    output = open('image.png', 'wb') 
    output.write(imageData.decode('base64')) 
    output.close() 

Я хотел бы загрузить изображение и отправить его следующим образом:

inputfile = open('image.png', 'rb') 
imageData = inputfile.read().encode('base64') 
inputfile.close() 
return simplejson.dumps({ 'image': imageData }) 

Но это не дает мне точных данных, и мой клиент не может нарисовать возвращенное изображение. imageData заканчивается 2OWn9u2, когда я пишу его, и 2OWn, когда я его прочитал (отсутствует «9u2»).

ответ

0

Хорошо, разница данных не является проблемой, она работает. Вот как я рисую возвращенное изображение на моем клиенте:

saveImage_callback: (result)=> 
    imageData = 'data:image/png;base64,'+result.image 
    image = new Image() 
    image.src = imageData 
    canvas.getContext("2d").drawImage(image, 300, 300, 300, 300)