Я пытаюсь отправить файл .jpg
с помощью request
и пытаюсь декодировать его в
серверная часть django.
КОД:
Это код отправляющей стороны:
import requests
import os
import base64
fPath = os.getcwd()
url = 'http://127.0.0.1:8000/submitcausedata/'
headers = {'content-type': 'application/x-www-form-urlencoded'}
path_img = fPath + '/image13.jpg'
data = open(path_img,'rb').read()
encoded_image = base64.encodestring(data)
print(encoded_image[:10])
r = requests.post(url,data=encoded_image,headers=headers)
При получении кода завершения:
@csrf_exempt
def submitCauseData(request):
response_data = {}
if request.method == 'POST':
data = request.POST
myDict = dict(data)
imageStr = list(myDict.keys())
imageStr = imageStr[0]
print(imageStr[:10])
image_result = open('image.jpg', 'wb')
image_result.write(base64.b64decode(imageStr))
return HttpResponse("Page Exists")
Итак, код выполняется, но когда я пытаюсь открыть сохраненное изображение, он показывает ошибку Photo Source File missing
?
Код отправки:
print(encoded_image[:10])
----> b'/9j/4WQYRX'
Вывод кода принимающей стороны:
print(imageStr[:10])
----> /9j/4WQYRX
UPDATE:
При сравнении обоих файлов .jpg
с использованием преобразования .txt
многие значения в обоих из них отличаются при использовании DiffChecker
Online.
Средство просмотра изображений в Ubuntu показывает ошибку при открытии .jpg
на принимающей стороне:
Error interpreting JPEG image file (Unsupported marker type 0x10)
Также:
На отправляющей стороне:
print(len(data))
print(type(data))
print(len(encoded_image))
print(type(encoded_image))
OUTPUT:
171062
<class 'bytes'>
228084
<class 'bytes'>
На принимающей стороне:
print(len(imageStr))
print(type(imageStr))
print(len(imagedec))
print(type(imagedec))
OUTPUT:
228083
<class 'str'>
168972
<class 'bytes'>