|
@@ -0,0 +1,88 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+import os
|
|
|
+import traceback
|
|
|
+
|
|
|
+from django.utils.decorators import method_decorator
|
|
|
+from django.views.decorators.csrf import csrf_exempt
|
|
|
+from django.views.generic.base import View
|
|
|
+
|
|
|
+from Ansjer.config import BASE_DIR
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+
|
|
|
+
|
|
|
+class FAQUploadView(View):
|
|
|
+ @method_decorator(csrf_exempt)
|
|
|
+ def dispatch(self, request, *args, **kwargs):
|
|
|
+ return super(FAQUploadView, self).dispatch(request, *args, **kwargs)
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.GET
|
|
|
+ fileName = request.FILES.get('fileName', None)
|
|
|
+ return self.validate(fileName, request_dict)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.POST
|
|
|
+ fileName = request.FILES.get('fileName', None)
|
|
|
+ return self.validate(fileName, request_dict)
|
|
|
+
|
|
|
+ def validate(self, fileName, request_dict):
|
|
|
+ token = TokenObject(request_dict.get('token', None))
|
|
|
+
|
|
|
+ response = ResponseObject()
|
|
|
+ if token.code != 0:
|
|
|
+ return response.json(token.code)
|
|
|
+
|
|
|
+ try:
|
|
|
+ path = '/'.join((BASE_DIR, 'static/FAQImages')).replace('\\', '/') + '/'
|
|
|
+ if not os.path.exists(path):
|
|
|
+ os.makedirs(path)
|
|
|
+ file_name = path + str(fileName)
|
|
|
+ if os.path.exists(file_name):
|
|
|
+ os.remove(file_name)
|
|
|
+ destination = open(file_name, 'wb+')
|
|
|
+ for chunk in fileName.chunks():
|
|
|
+ destination.write(chunk)
|
|
|
+ destination.close()
|
|
|
+ else:
|
|
|
+ file_name = path + str(fileName)
|
|
|
+ if os.path.exists(file_name):
|
|
|
+ os.remove(file_name)
|
|
|
+
|
|
|
+ destination = open(file_name, 'wb+')
|
|
|
+ for chunk in fileName.chunks():
|
|
|
+ destination.write(chunk)
|
|
|
+ destination.close()
|
|
|
+ except Exception as e:
|
|
|
+ errorInfo = traceback.format_exc()
|
|
|
+ print('上传文件错误: %s' % errorInfo)
|
|
|
+ return response.json(700, {'details': repr(e)})
|
|
|
+ else:
|
|
|
+ index = file_name.find('static/')
|
|
|
+ filePath = file_name[index:]
|
|
|
+ return response.json(0, {'filePath': filePath})
|
|
|
+
|
|
|
+
|
|
|
+class FAQView(View):
|
|
|
+
|
|
|
+ @method_decorator(csrf_exempt)
|
|
|
+ def dispatch(self, *args, **kwargs):
|
|
|
+ return super(FAQView, self).dispatch(*args, **kwargs)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.POST
|
|
|
+ operation = kwargs.get('operation', None)
|
|
|
+ return self.validate(request_dict, operation)
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.GET
|
|
|
+ operation = kwargs.get('operation', None)
|
|
|
+ return self.validate(request_dict, operation)
|
|
|
+
|
|
|
+ def validate(self, request_dict, operation):
|
|
|
+ return
|