|
|
@@ -0,0 +1,49 @@
|
|
|
+import os
|
|
|
+from rest_framework.views import APIView
|
|
|
+from rest_framework.response import Response
|
|
|
+from rest_framework.parsers import FileUploadParser
|
|
|
+from kedong.settings import MEDIA_ROOT
|
|
|
+import uuid
|
|
|
+import uuid
|
|
|
+from datetime import datetime
|
|
|
+from django.conf import settings
|
|
|
+from smartfarming.models.agriculture import APKLogs
|
|
|
+
|
|
|
+
|
|
|
+config = settings.CONFIG
|
|
|
+
|
|
|
+class NewUploadAPIView(APIView):
|
|
|
+ def post(self, request):
|
|
|
+ server_web = config.get("server_web")
|
|
|
+ path = request.data.get("model", "others")
|
|
|
+ local_path = os.path.join(MEDIA_ROOT, path)
|
|
|
+ os.mkdir(local_path) if not os.path.exists(local_path) else None
|
|
|
+ file_obj = request.data['file']
|
|
|
+ if file_obj.size > 1024 * 1024 * 200:
|
|
|
+ return Response({"code": 2, "msg": "请上传小于200M文件"})
|
|
|
+ try:
|
|
|
+ stamp = datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
|
|
|
+ file_name = "kedong." + ((file_obj.name).split("."))[-1]
|
|
|
+ file = f"{local_path}/{file_name}"
|
|
|
+ old_url = os.path.join(local_path, f"{str(stamp)}-{file_name}")
|
|
|
+ if os.path.exists(file):
|
|
|
+ os.rename(file, old_url)
|
|
|
+ with open(file, 'wb') as f:
|
|
|
+ for chunk in file_obj.chunks():
|
|
|
+ f.write(chunk)
|
|
|
+ url = f'{server_web}/media/{local_path}/{file_name}'
|
|
|
+ old_url = f"{server_web}/media/{old_url}"
|
|
|
+ return Response({"url": url, "old_url": old_url, "code": 0, "msg": "success"})
|
|
|
+ except Exception as e:
|
|
|
+ return Response({"code": 2, "msg": "图片保存失败,请检查或重试"})
|
|
|
+
|
|
|
+
|
|
|
+class APKUploadView(APIView):
|
|
|
+ # 上传图片
|
|
|
+ def post(self, request):
|
|
|
+ server_web = config.get("server_web")
|
|
|
+ local_path = os.path.join(MEDIA_ROOT, "apk")
|
|
|
+ os.mkdir(local_path) if not os.path.exists(local_path) else None
|
|
|
+ file_apk = request.data['apk']
|
|
|
+ file_qrcode = request.data['qrcode']
|
|
|
+
|