温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Django如何接收照片储存文件

发布时间:2021-06-16 15:17:26 来源:亿速云 阅读:199 作者:小新 栏目:开发技术

这篇文章主要介绍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如何接收照片储存文件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI