實現用戶在客戶端更改頭像,上傳頭像圖片,自動生成縮略圖顯示。html
前端代碼:注意 enctype="multipart/form-data"前端
<form enctype="multipart/form-data" method="POST" action="{% url 'users:avatar_upload'%}">{% csrf_token %} <input type="file" name="image"/> <div class="modal-body"> <div class="cutimgbox"> <div class="btn-box-cutimg"> <input type="submit" class="btn btn-xxlg btn-micv5 btn-block" value="submit" /> </div> </div> </div> </form>
前端效果:函數
#視圖函數修改頭像ui
from PIL import Image @login_required # @csrf_exempt def avatar_upload(request): if request.method == 'POST': username = request.user.username user = UserProfile.objects.get(username=username) if 'image' in request.FILES: image = request.FILES['image'] #縮略圖 s_img = Image.open(image) s_img.thumbnail((80, 80), Image.ANTIALIAS) if not os.path.exists(mini_img_path): os.makedirs(mini_img_path) img_url = mini_img_path + '\\' + username+ ".jpeg" s_img.save(img_url ) user.avatar_small_thumbnall= r'\uploads\avatar\minipic'+'\\' +username+ ".jpeg" user.save() return render(request,'users/userinfo.html',locals())
更改效果:url