Django高级应用之上传图片到服务端

本文详细介绍了在Django中实现文件上传至服务器的步骤,包括配置存储路径、设置settings.py、处理表单及POST请求,以及创建模板和视图函数。重点强调了表单需使用multipart/form-data编码类型。
摘要由CSDN通过智能技术生成

一、概述

文件上传时,文件数据存储在request.FILES属性中

二、存储路径

static目录下创建upfile目录用于存储接收上传的文件

 

三、配置setting.py文件

加入:

MEDIA_ROOT=os.path.join(BASE_DIR,r'static\upfile')

四、注意

1from表单要上传文件需要加enctype="multipart/form-data"

2)上传文件不能是GET,必须是POST

五、实例

首先制作模板文件upfile.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
    <form method="post" action="/savefile/" enctype="multipart/form-data">  <!--上传文件必须要加的-->
        <input type="file" name="file"/>
        <input type="submit" value="上传"/>
    </form>
</body>
</html>

再者配置url

url(r'^upfile/$',views.upfile),    #upfile用来上传文件
url(r'^savefile/$',views.savefile),   #savefile函数用来存储文件

views.py

import os
from django.conf import settings
def upfile(request):
    return render(request,'myApp/upfile.html')
def savefile(request):   
    if request.method == "POST":    #文件一定是要POST方法
        f = request.FILES['file']     #在FILES中接收文件
        #文件在服务器端的路径
        filepath = os.path.join(settings.MEDIA_ROOT,f.name)
        with open(filepath,'wb') as fp:
            for info in f.chunks():
                fp.write(info)   #chunks是以文件流的方式来接受文件,分段写入
                return HttpResponse('上传成功')

    else:
        return HttpResponse('上传失败!')



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值