1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > django图片上传到oss_Django上传文件

django图片上传到oss_Django上传文件

时间:2020-10-20 11:35:42

相关推荐

django图片上传到oss_Django上传文件

继前文的项目准备中,涉及到上传歌曲,所以有了这一过程,在项目目录下设置了资源文件夹暂存歌曲,完场云端上传后即删除所有文件

上传表单

主要设置了上传提交两个选项,定义了上传属性,方便后续获取到文件对象,提交到后台的upload方法做处理,这里传入一个from的参数获取到当前页面上下文,当文件传输无误时返回原页面

{% csrf_token %}

views.py

from django.shortcuts import render, redirect

from django.urls import reverse

import os

import oss2

from django.http import HttpResponse

def upload_file(request):

referer = request.META.get('HTTP_REFERER', reverse('home'))

if request.method == "POST": # 请求方法为POST时,进行处理

myFile =request.FILES.get("myfile", None) # 获取上传的文件,如果没有文件,则默认为None

if not myFile:

return HttpResponse("no files for upload!")

destination = open(os.path.join(dir_path, myFile.name), 'wb+') # 打开特定的文件进行二进制的写操作

for chunk in myFile.chunks(): # 分块写入文件

destination.write(chunk)

destination.close()

# with open(oss2.to_unicode(dir_path+"/"+myFile.name), 'rb') as f:

# bucket.put_object(myFile.name, f)

os.chdir('../static')

shutil.rmtree("media")

os.mkdir("media")

return redirect(request.GET.get('from', reverse('home')))

这里只简单演示了下上传操作,其中涉及其他版块的操作我都隐去了,大家可以去尝试一下,注意django的表单操作记得要加上{{csrf_token}}生成验证不然会抛出403的验证失败异常。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。