Django 上传文件

2 篇文章 0 订阅
1 篇文章 0 订阅

上传文件

urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^upload/$', views.upload_file, name='upload'),
    url(r'^index/$', views.index),
]

views.py

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from .models import *
import os
# Create your views here.

def upload_file(request):
    if request.method == 'GET':
        return render(request,'upload_file.html')
    else:
#    elif request.method == 'POST':
        print(request)
        myFile = request.FILES.get("myfile", None)
        if not myFile:
            print("myFile failed.")
            return HttpResponse("no file for upload!")
        else:
            print("myFile ok.")
        # 文件路径
        fp = open(os.path.join("D:\\", myFile.name), "wb+")
        for chunk in myFile.chunks():
            fp.write(chunk)
        fp.close()
        return HttpResponse('OK')
    
def index(request):
    return HttpResponse("欢迎来到主页")

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/upload/" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="text" name="myfile_show" placeholder="文件名"><br>
    <input type="file" name="myfile"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

注意点:

  • action的字符串,一定要以’/'结尾,否则一定报错!注意了;
  • 在有文件上传的form表单中,method属性必须为post,而且必须指定它的enctype="multipart/form-data",表明不对字符进行编码;
  • 注意name的取值,要和views.py的值保持一致,如myfile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值