利用Django实现文件上传


一、form表单的形式上传文件

1、路由

urlpatterns = [
    path("upload/", views.UploadView.as_view(),)
]

2、视图

from django.views import View

class UploadView(View):

    def get(self,reqeust):
        return render(reqeust,"index.html")  #get请求时,返回一个HTML页面

    def post(self,reqeust):
        put_file = reqeust.FILES.get("put_file")  #上传文件的post请求时,获取文件内容-->putfile
        print(put_file.name)   #打印文件名

        with open(put_file.name,"wb") as f:   #将文件内容写入到文件中保存
            for line in put_file:
                f.write(line)

        return HttpResponse("上传成功!")  #返回结果提示

3、模板index.html

基于form表单的文件上传

{#提交文件时,必须设置为这个参数:enctype="multipart/form-data"#}

二、Ajax的形式上传文件

1、后端代码和form表单上传的形式一样

2、前端代码:

基于Ajax的文件上传

{# 上传成功后的提示信息显示位置 #}