文件上传

来源:互联网 发布:java递归1加到100 编辑:程序博客网 时间:2024/06/05 02:34

准备工作

文件上传 ,这种的不限于图片,视频什么的都可以

(1)在根目录下创建static

(2)在setting中配置(最后一行)

STATICFILES_DIRS = [
os.path.join(BASE_DIR, ‘static’),
]

MEDIA_ROOT = os.path.join(BASE_DIR, r’static/uploadfiles’)

开始

1,上传页面进行

<form action="{% url 'myapp:doupload' %}" method="post" enctype="multipart/form-data">    {% csrf_token %}    <span>选择文件</span><input type="file" name="user_icon" >    <br>    <input type="submit" value="上传"></form>

method=”post” 方法用post,post必须用网络安全 {% csrf_token %}
enctype=”multipart/form-data” 必须加密
type=”file”上传用file

2,开始上传

文件上传 ,这种的不限于图片,视频什么的都可以

def upload(request):    return render(request, 'myapp/upload.html')# 执行上传路径def doupload(request):    # 接受并存储,接受客户端传递过来的文件    user_icond = request.FILES['user_icon']    # 做好存储文件,user_icond.name加到,settings里配置的路径里面    storage_icon = os.path.join(settings.MEDIA_ROOT, user_icond.name)    # 打开文件    with open(storage_icon, 'wb') as storage:        # 写入,chunks把文件变成小包        for part in user_icond.chunks():            storage.write(part)            storage.flush()    return HttpResponse('文件上传成功')