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


Posted in Python onMarch 07, 2020

后端:

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储存文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python自动化工具日志查询分析脚本代码实现
Nov 26 Python
Python Queue模块详细介绍及实例
Dec 27 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
Django框架模型简单介绍与使用分析
Jul 18 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
python计算导数并绘图的实例
Feb 29 Python
解决pip install psycopg2出错问题
Jul 09 Python
python 下载文件的几种方法汇总
Jan 06 Python
Python实现对adb命令封装
Mar 06 #Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 #Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 #Python
mac在matplotlib中显示中文的操作方法
Mar 06 #Python
python数据类型可变不可变知识点总结
Mar 06 #Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 #Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 #Python
You might like
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP中“=&gt;
2019/03/01 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
js中eval详解
2012/03/30 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
javascript多行字符串的简单实现方式
2015/05/04 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
Python基于select实现的socket服务器
2016/04/13 Python
Python生成密码库功能示例
2017/05/23 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
python实现计算图形面积
2021/02/22 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
总裁助理岗位职责
2014/02/17 职场文书
《散步》教学反思
2014/03/02 职场文书
英文推荐信格式范文
2014/05/09 职场文书
委托书格式范文
2015/01/28 职场文书
golang定时器
2022/04/14 Golang