2013-04-16 89 views
0

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

这是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 %} 

我应该怎么改变上传图像到 “图片” 文件夹

+0

应该是''request.FILES.get( '图像')''。 – krak3n

回答

2

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

因此,在Binding uploaded files to a form

更新到

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

.... 

更多信息要保存图像的更容易使用ModelForm和设置镜像文件正确。不过还是要保存对象直接做

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

参考File Uploads

+0

它更改数据库字段,但不会将图像上载到“图像”文件夹。有没有任何代码上传图片? – Lahiruzz

+0

@Lahiruzz,你是否按照答案中的建议更新了代码? – Rohan

+0

@Lahiruzz,我会建议使用'ModelForm',而不是直接保存对象。 – Rohan