Django:图像上传到服务器

时间:2013-04-16 10:23:43

标签: django django-models

我想将图片上传到服务器。为此,我创建了一个表单,并在我的views.py文件中,我试图将其提交到服务器。这里它不会将文件上传到“images”文件夹。而不是它只更新使用新图像名称的数据库。所以任何人都可以给我一个解决方案。

这是views.py文件

@login_required
def edit_profile(request):

if request.POST:


        employee = Employee.objects.get(user=request.user)          
        employee.avatar=request.POST.get('image')
        employee.save()
        return HttpResponseRedirect('/view_profile/')       

user_profile = request.user.get_profile()
return render_to_response('edit_profile.html',{'profile':user_profile },context_instance=RequestContext(request))

这里是我的HTML代码

   {% block content %}

<form action="." method="post">
{% csrf_token %}    

    <input type="file" name="image"/>
    <input type="submit" value="Save Changes" name="save" />        

</form>

{% endblock %}

我应该将图像上传到“images”文件夹

1 个答案:

答案 0 :(得分:3)

您需要在enctype="multipart/form-data"元素中添加form,以便文件也会上传并在视图中的request.FILES中显示。

因此请将其更新为

<form action="." method="post" enctype="multipart/form-data" >

 ....

Binding uploaded files to a form

的更多信息

要保存图像,更容易使用ModelForm并正确设置图像文件。但是你还是想直接保存对象吗

...
employee.avatar = request.FILES['image']
employee.save()

参考File Uploads