django实现文件上传(最简单的方法)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django实现文件上传(最简单的方法)相关的知识,希望对你有一定的参考价值。

html页面代码:

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



URL配置:

urlpatterns = [,
    url(r‘^upload/$‘, upload),
]



views.py配置:

def upload(request):
    if request.method == ‘GET‘:
        return render(request,‘upload.html‘)
    elif request.method == ‘POST‘:
        content =request.FILES.get("upload", None)
        if not content:
            return HttpResponse("没有上传内容")
        position = os.path.join(‘C:\\Users\\huyuan\\Desktop\\test\\upload‘,content.name)
        #获取上传文件的文件名,并将其存储到指定位置

        storage = open(position,‘wb+‘)       #打开存储文件
        for chunk in content.chunks():       #分块写入文件
            storage.write(chunk)
        storage.close()                      #写入完成后关闭文件
        return HttpResponse("上传成功")      #返回客户端信息
    else:
        return HttpResponseRedirect("不支持的请求方法")


上传文件的常用方法和属性:

   content.read():从文件中读取整个上传的数据,这个方法只适合小文件

   content.chunks():按块写入文件,通过for循环可以将大文件按块写入到磁盘中

   content.name:获取文件名,包括后缀

   content.size:获取文件大小


本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1954705

以上是关于django实现文件上传(最简单的方法)的主要内容,如果未能解决你的问题,请参考以下文章

django中使用FastDFS分布式文件系统接口代码实现文件上传下载更新删除

django上传图片简单验证以及自动修改图片名称

如何使用ImageField模型调整使用Django上传的图像文件的大小? [关闭]

在 Django 中上传文件,然后通过 REST 将其发送到其他地方? [关闭]

前端文件上传多种方式

纯js实现最简单的文件上传(后台使用MultipartFile)