系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 脚本中心 > python > 详细页面

Django接收照片储存文件的实例代码

时间:2020-03-07来源:电脑系统城作者:电脑系统城

这篇文章主要介绍了Django接收照片储存文件的实例代码 ,代码简单易懂,非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

后端:


 
  1. from rest_framework.views import APIView
  2. from car import settings
  3. from django.shortcuts import render, redirect, HttpResponse
  4. from dal import models
  5. from django.http import JsonResponse
  6. import os
  7.  
  8. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  9.  
  10. class Image(APIView):
  11.  
  12. def post(self, request):
  13. file_obj = request.FILES.get('send',None)
  14.  
  15. print("file_obj",file_obj.name)
  16.  
  17. file_path = os.path.join(BASE_DIR, 'media', 'user/img', file_obj.name)
  18.  
  19. print("file_path", file_path)
  20.  
  21. with open(file_path, 'w') as f:
  22. for chunk in file_obj.chunks():
  23. f.write(chunk)
  24.  
  25. message = {}
  26. message['code'] = 200
  27.  
  28. return JsonResponse(message)

前端ajax:


 
  1. <form method="post" action="/upload/" enctype="multipart/form-data" target="ifm1">
  2. <input type="file" name="send"/>
  3.  
  4. <input type="submit" value="Form表单提交"/>
  5. </form>

下面在看下在Django中接收文件并存储

首先是一个views函数的例子 


 
  1. def get_user_profiles(request):
  2. if request.method == 'POST':
  3. myFile = request.FILES.get("filename", None)
  4. if myFile:
  5. dir = os.path.join(os.path.join(BASE_DIR, 'static'),'profiles')
  6. destination = open(os.path.join(dir, myFile.name),
  7. 'wb+')
  8. for chunk in myFile.chunks():
  9. destination.write(chunk)
  10. destination.close()
  11. return HttpResponse('ok')

这是一个简单的接收客户端上传的头像文件并保存的例子,应该看过这个就已经大体会使用接收文件了

但是这里的filename是客户端上传的文件名,也可能是像下面这样的表单 

<input type="file" name="filename" />

如果不知道固定上传的文件名,想要客户端上传什么文件就以其上传的名字命名可以这么写


 
  1. def get_user_profiles(request):
  2. if request.method == 'POST':
  3. if request.FILES:
  4. myFile =None
  5. for i in request.FILES:
  6. myFile = request.FILES[i]
  7. if myFile:
  8. dir = os.path.join(os.path.join(BASE_DIR, 'static'),'profiles')
  9. destination = open(os.path.join(dir, myFile.name),
  10. 'wb+')
  11. for chunk in myFile.chunks():
  12. destination.write(chunk)
  13. destination.close()
  14. return HttpResponse('ok')

不过这个是通过输出request.FILES试出来的,不知道是否有更合适的方法。

总结

到此这篇关于Django接收照片储存文件的实例代码 的文章就介绍到这了,更多相关Django储存文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载