Django文件的上传与下载,图片的上传与显示
最近写大学的毕设,然后碰到了文件的上传下载功能以及图片的上传显示功能,也倒腾了一会儿才搞定,现在就详细说一下~
1.文件的上传和下载
最后的效果大概长这样:
点击上传按钮开始上传,
然后到“试题下载”界面中去查看
点击下载图标:
下载完成后在本地查看:
具体代码过程如下:
当Django处理上传文件时,文件数据被保存在request.FILES中。写上传时需要注意,只有当request方法是POST并且<form>的属性中有enctype="multipart/form-data“时,表明不对字符进行编码,request.FILSE中才会包含文件数据,否则request.FILES为空。
然后写一个处理上传文件,显示上传文件,下载上传文件的视图函数,代码如下:
这个下载过程,先写了一个迭代器,用于处理文件,然后将这个迭代器作为参数传递给StreaminghttpResponse对象,为避免文件流以乱码形式显示到浏览器的问题,这里让文件流写入硬盘,即给StreamingHttpResponse对象的Content-Type和Content-Disposition字段赋值如上response[...]部分。
之后写好urls部分
这样,文件的功能就完成了。
2.图片的上传和显示
点击按钮
点击上传,然后就可以显示了
视图代码如下:
部分html代码如下: