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中的类与实例
Apr 27 Python
python追加元素到列表的方法
Jul 28 Python
python监控文件并且发送告警邮件
Jun 21 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
基于python实现模拟数据结构模型
Jun 12 Python
python如何利用Mitmproxy抓包
Oct 10 Python
Python如何实现Paramiko的二次封装
Jan 30 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来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
php防止用户重复提交表单
2015/11/02 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
ECMAScript6--解构
2017/03/30 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python with statement 进行文件操作指南
2014/08/22 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
浅析Python基础-流程控制
2016/03/18 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
python 修改本地网络配置的方法
2019/08/14 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
最新英语专业学生求职信范文
2013/09/21 职场文书
农场厂长岗位职责
2013/12/28 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android