views.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from django.views.decorators.http import require_http_methods
  2. from django.views.decorators.csrf import csrf_exempt
  3. from .models import Files as Files_models
  4. from admin_site.settings import BASE_DIR
  5. from admin_site.utils import setError, setSuccess, userPersonToDictionary, is_token
  6. from admin_site.decorator import my_decorator
  7. from django.contrib.auth.decorators import login_required
  8. import os
  9. from django.http import HttpResponse, Http404, StreamingHttpResponse, JsonResponse
  10. from .tasks import add, del_file
  11. from django.core.files.storage import FileSystemStorage
  12. @csrf_exempt
  13. @require_http_methods(["POST", "GET"])
  14. def index(request):
  15. # print(request.path)
  16. # login_required(request)
  17. # print(request.GET.get('token'))
  18. token = request.GET.get('token')
  19. print(25, os.getcwd())
  20. try:
  21. error = is_token(token)
  22. print(error)
  23. # if error:
  24. # return error
  25. file_path = os.getcwd() + request.path
  26. print(file_path)
  27. response = StreamingHttpResponse(open(file_path, 'rb'))
  28. response['content_type'] = "application/octet-stream"
  29. response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(file_path)
  30. return response
  31. except Exception:
  32. raise Http404
  33. # return HttpResponse(setError("文件不存在 index"))
  34. @csrf_exempt
  35. @require_http_methods(["POST", "GET"])
  36. def info(request):
  37. return HttpResponse(setError("文件不存在 info"))
  38. @csrf_exempt
  39. @require_http_methods(["POST", "GET"])
  40. def uploadFile(request):
  41. # print(request.FILES.file)
  42. # 获取上传的文件对象
  43. uploaded_file = request.FILES['file']
  44. # 创建文件存储系统对象并保存文件
  45. fs = FileSystemStorage()
  46. file_path = os.path.join(BASE_DIR, 'download', uploaded_file.name)
  47. file = fs.save(file_path, uploaded_file)
  48. print(54, file)
  49. params = {
  50. # download / python_93040206 - master.zip
  51. # "file_path": "download/" + uploaded_file.name
  52. "file_path": file
  53. }
  54. file_add = Files_models(**params)
  55. file_add.save()
  56. return JsonResponse(setSuccess(msg='更新成功', data=file_add.id));
  57. @csrf_exempt
  58. @require_http_methods(["POST", "GET"])
  59. def test(request):
  60. # result = waste_time.delay(2, 3)
  61. # return HttpResponse(result.task_id)
  62. # return HttpResponse(result.task_id)
  63. # return HttpResponse(setError("文件不存在 info"))
  64. result = add.delay(1, 2)
  65. return HttpResponse(result.get())
  66. @csrf_exempt
  67. @require_http_methods(["POST", "GET"])
  68. def del_file_view(request):
  69. del_file()
  70. return JsonResponse(setSuccess(msg='更新成功', data=True))