Django接收照片储存文件的实例代码
作者:PythonNew_Mr.Wang 发布时间:2022-06-01 09:05:29
标签: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试出来的,不知道是否有更合适的方法。
来源:https://www.cnblogs.com/wanghong1994/p/12431691.html


猜你喜欢
- 实例如下所示:import pandas as pdimport reimport mathdframe1 = pd.read_excel(
- 今天同学向我提了一个问题,我觉得蛮有意思,现记录下来大家探讨下。问题是:在一个表里面,有一个允许为空的字段,空是可以重复的,但是不为空的值需
- 大家好,我是丁小杰!今天和大家分享Pandas中四种有关数据透视的通用函数,在数据处理中遇到这类需求时,能够很好地应对。pandas.mel
- linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中
- 起步利用 html5 的 <video> 标签可以播放:<video width="320" heig
- 一、心知天气API密钥获取首先,访问https://www.seniverse.com,进行登录或者注册操作,然后在控制台上创建一个免费版的
- 本文环境Python 3.6.5Django 2.0.4fix(2018.5.19):最近得知Django 的model基类需要声明为abs
- 数据库操作当中,当数据库对象列表不只有一个普通的元素——objectname时,你将要使用objectowner.objectname来引用
- 技术背景对于一些连续运行或者长时间运行的Python程序而言,如服务器的后端,或者是长时间运行的科学计算程序。当我们涉及到一些中途退出的操作
- 1.MyBatis简介与配置MyBatis+Spring+MySql1.1MyBatis简介
- 本文实例讲述了JavaScript基于Ajax实现不刷新在网页上动态显示文件内容的方法。分享给大家供大家参考。具体如下:下面的JS代码是一个
- threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被
- Tensorflow内置了许多数据集,但是实际自己应用的时候还是需要使用自己的数据集,这里TensorFlow 官网也给介绍文档,官方文档。
- 目录pyspark创建DataFrameRDD和DataFrame使用二元组创建DataFrame使用键值对创建DataFrame使用rdd
- 层及索引levels,刚开始学习pandas的时候没有太多的操作关于groupby,仅仅是简单的count、sum、size等等,没有更深入
- chr(13) 是一个回车Chr(10) 是一个换行符chr
- 前言:Go 语言追求简洁优雅,所以,Go 语言不支持传统的 try…catch…finally
- 顾名思义,本期内容肯定是涉及编程时间,那在操作python要怎么用time这个方法呢?一起来看下吧~时间模块的定义与使用:时间模块time是
- 1. 原理孔洞指的是被前景像素点或者说感兴趣的像素点包围起来的区域,这个区域是我们不感兴趣的背景区域。数字图像处理的孔洞填充的公式为:I 为
- 1.在vue项目根目录下新建vue.config.js(不是在src下面)vue.config.js配置文件:module.exports