Django接收照片储存文件的实例代码
时间:2020-03-07来源:电脑系统城作者:电脑系统城
这篇文章主要介绍了Django接收照片储存文件的实例代码 ,代码简单易懂,非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
后端:
- from rest_framework.views import APIView
- from car import settings
- from django.shortcuts import render, redirect, HttpResponse
- from dal import models
- from django.http import JsonResponse
- import os
-
- BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
- class Image(APIView):
-
- def post(self, request):
- file_obj = request.FILES.get('send',None)
-
- print("file_obj",file_obj.name)
-
- file_path = os.path.join(BASE_DIR, 'media', 'user/img', file_obj.name)
-
- print("file_path", file_path)
-
- with open(file_path, 'w') as f:
- for chunk in file_obj.chunks():
- f.write(chunk)
-
- message = {}
- message['code'] = 200
-
- return JsonResponse(message)
前端ajax:
- <form method="post" action="/upload/" enctype="multipart/form-data" target="ifm1">
- <input type="file" name="send"/>
-
- <input type="submit" value="Form表单提交"/>
- </form>
下面在看下在Django中接收文件并存储
首先是一个views函数的例子
- def get_user_profiles(request):
- if request.method == 'POST':
- myFile = request.FILES.get("filename", None)
- if myFile:
- dir = os.path.join(os.path.join(BASE_DIR, 'static'),'profiles')
- destination = open(os.path.join(dir, myFile.name),
- 'wb+')
- for chunk in myFile.chunks():
- destination.write(chunk)
- destination.close()
- return HttpResponse('ok')
这是一个简单的接收客户端上传的头像文件并保存的例子,应该看过这个就已经大体会使用接收文件了
但是这里的filename是客户端上传的文件名,也可能是像下面这样的表单
<input type="file" name="filename" />
如果不知道固定上传的文件名,想要客户端上传什么文件就以其上传的名字命名可以这么写
- def get_user_profiles(request):
- if request.method == 'POST':
- if request.FILES:
- myFile =None
- for i in request.FILES:
- myFile = request.FILES[i]
- if myFile:
- dir = os.path.join(os.path.join(BASE_DIR, 'static'),'profiles')
- destination = open(os.path.join(dir, myFile.name),
- 'wb+')
- for chunk in myFile.chunks():
- destination.write(chunk)
- destination.close()
- return HttpResponse('ok')
不过这个是通过输出request.FILES试出来的,不知道是否有更合适的方法。
总结
到此这篇关于Django接收照片储存文件的实例代码 的文章就介绍到这了,更多相关Django储存文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关信息