booktest35-自定义页面上传

1.添加视图函数

def show_upload(request):
    return  render(request,'booktest/upload_pic.html')

def upload_handle(request):
    '''上传图片处理'''
    pic = request.FILES['pic']
    #小于2.5M是InMemoryUploadedFile类型,
    # 大于2.5M为TemporaryUploadedFile类型
    # class 'django.core.files.uploadedfile.InMemoryUploadedFile'>
    # class 'django.core.files.uploadedfile.TemporaryUploadedFile'>
    #print(type(pic))
    #print(pic.name)
    #pic.chunks()
    #创建一个文件
    save_path = '%s/booktest/%s'%(settings.MEDIA_ROOT,pic.name)
    with open(save_path,'wb') as f:
        #获取文件内容,并写到创建的文件中
        for content in pic.chunks():
            f.write(content)
    #在数据库中保存上传记录
    PicTest.objects.create(goods_pic='booktest/%s'%pic.name)
    return  HttpResponse('ok')

2.upload_pic.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传图片</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="/upload_handle">
    {% csrf_token %}
    <input type="file" name="pic"><br/>
    <input type="submit" value="上传">
</form>
</body>
</html>

3.url

    url(r'^show_upload$', views.show_upload),
    url(r'^upload_handle$', views.upload_handle),

4.测试

猜你喜欢

转载自blog.csdn.net/dxm809/article/details/107144619