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实现多线程采集的2个代码例子
Jul 07 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
解决python flask中config配置管理的问题
Jul 26 Python
Python操作redis和mongoDB的方法
Dec 19 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
如何在django中实现分页功能
Apr 22 Python
python编写实现抽奖器
Sep 10 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
Python 里最强的地图绘制神器
Mar 01 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
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
Python按行读取文件的简单实现方法
2016/06/22 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
python爬虫用mongodb的理由
2020/07/28 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
PHP经典面试题
2016/09/03 面试题
大学学年自我鉴定
2013/10/28 职场文书
数控技术应届生求职信
2013/11/13 职场文书
竟聘演讲稿范文
2013/12/31 职场文书
职务说明书范文
2014/05/07 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
工作年限证明范本
2015/06/15 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
解决Python字典查找报Keyerror的问题
2021/05/26 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
Go语言基础map用法及示例详解
2021/11/17 Golang