как получить НЕ разбившийся файл изображения из Unity в Django? - PullRequest
0 голосов
/ 21 мая 2019

Я использую Unity 2018.3. и попробуйте HTTP POST-запрос с изображением из Unity в Django.

попробуйте сделать снимок в Unity, а затем отправьте его на сервер Django.
Я хочу получить на сервере и сделать это в файл изображения.

хорошо, когда я отправляю файл изображения в byte [] с помощью EncodeToPNG () или EncodeToJPG (), сервер получает его, но когда я печатаю его, данные об ошибке выглядят как ошибка кодирования. поэтому он не может записать в формат изображения. (код для фотосъемки работает правильно.)
Изображение сервера Django

Я видел кучу вещей об этой проблеме, поэтому я попытался другим способом, например, использовать WWWform или JSON, но ничего не получалось ..

как получить изображение из Unity в Django?
Вся помощь приветствуется! Спасибо всем.

1011 *
*

сделайте снимок

 void TakeSnapshot()
 {
     Texture2D snap = new Texture2D(frontCam.width, frontCam.height);
     snap.SetPixels(frontCam.GetPixels());
     snap.Apply();

     _SavePath = pathForDocumentsFile("photo");
     System.IO.File.WriteAllBytes(_SavePath + ".png", snap.EncodeToPNG());

     bytes = snap.EncodeToPNG();
     //bytes = snap.EncodeToJPG();

     UnityEngine.Object.Destroy(snap);

     path = _SavePath + ".png";

     StartCoroutine(ServerThrows());
 }


POST к серверу

 IEnumerator ServerThrows()
 {
     List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
     formData.Add(new MultipartFormDataSection("photo", bytes, "byte[]"));

     //UnityWebRequest www = UnityWebRequest.Post(url, null, bytes);
     UnityWebRequest www = UnityWebRequest.Post(url, formData);
     www.chunkedTransfer = false;
     yield return www.SendWebRequest();

     if (www.isNetworkError || www.isHttpError)
     {
         Debug.Log(www.error);
     }
     else
     {
         Debug.Log("Form upload complete!" + www.downloadHandler.text);
     }
 }


ответ на сервере

def post(self, request, format=None):
     print('get the data')

     print('request.POST: ', request.POST)
     print('request.headers: ', request.headers)

     data_test = request.POST.get('photo', '')

     print('data test is : ', data_test)
     print('type of data_test is : ', type(data_test))
     print('length of data_test is : ', len(data_test))
     print('finish to get ')
     # data_test = data_test.decode('utf-8').encode('euc_kr','replace')

     f = open('./test.png','wb')
     f.write(data_test.encode())
     f.close()

     #
     data = open('./test.png', 'rb')

     return HttpResponse("post !")
...