我正在尝试将视频文件从Unity客户端上载到python服务器,但是当我尝试使用Unity中的UnityWebRequest
和python中的http
模块进行上载时,服务器接收到无效的视频文件
我的问题是如何通过Http将视频文件从Unity上传到python
这是我在Unity中的代码:
IEnumerator StartUploadCoroutine()
{
// Show a load file dialog and wait for a response from user
yield return FileBrowser.WaitForLoadDialog(false, null, "Load File", "Load");
isOpen = false;
// Upload File to movie server
if (FileBrowser.Success)
{
StreamReader reader = new StreamReader(FileBrowser.Result);
StartCoroutine(UploadCoroutine(reader)); // upload file to server;
}
}
/* Upload the chosen video file to the movie server */
IEnumerator UploadCoroutine(StreamReader reader)
{
UnityWebRequest www = UnityWebRequest.Post(videoPlayerManager.GetServerIp() + ":" + port.ToString(), reader.ReadToEnd());
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
Debug.Log("Form upload complete!");
}
}
这是我的Python代码:
from http.server import BaseHTTPRequestHandler, HTTPServer
class HandleRequests(BaseHTTPRequestHandler):
def do_POST(self):
'''Reads post request body'''
content_length = int(self.headers['Content-Length'])
body = self.rfile.read(content_length)
self.send_response(200)
self.end_headers()
outF = open("myOutFile.mp4", "wb")
outF.write(body)
host = "127.0.0.1"
port = 9999
HTTPServer((host, port), HandleRequests).serve_forever()
多亏了>;阿拉希扬穆罕默德酒店
我的问题是以字符串而不是字节数组的形式从Unity发送文件。 我已将python代码更改为Flask server,以便可以轻松地从post请求中获取文件,最后我得到了以下代码:
这是我在Unity中的代码:
这是我的Python代码:
我认为在将文件(任何扩展名)上传到服务器时,编码并不重要
寻找两件事:
相关问题 更多 >
编程相关推荐