前端上传图片的三种方法
Django框架下,在前端上传文件,保存在数据库,并在前端不刷新页面显示上传图片。
利用XMLHttpRequest 对象和FormData对象上传文件
Ajax上传文件
基于form表单和iframe自己实现ajax请求
1、首先创建数据库表
class Img(models.Model):
path = models.CharField(max_length=128)
更新数据库
python manage.py makemigrations
python manage.py migrate
2、在Django后台views中定义函数
复制代码
#前端上传文件,保存在数据库,并在前端不刷新页面显示上传图片
import os,json
@csrf_exempt
def upload(request):
if request.method == ‘GET’:
img_list = models.Img.objects.all()
return render(request,‘upload.html’,{‘img_list’: img_list})
elif request.method == “POST”:
user = request.POST.get(‘user’)
fafafa = request.POST.get(‘fafafa’)
obj = request.FILES.get(‘fafafa’)
file_path = os.path.join(‘static’,‘upload’,obj.name)
f = open(file_path, ‘wb’)
for chunk in obj.chunks():
f.write(chunk)
f.close()
models.Img.objects.create(path=file_path)
ret