一、從前端接收圖片對象,將其轉換為base64
第一種:(直接寫入圖片本地路徑)
1 image_path = 'C:\\Users\\Administrator\\Desktop\\test2.jpg' 2 with open(image, 'rb') as f: 3 image = f.read() 4 image_base64 = str(base64.b64encode(image), encoding='utf-8')
第二種:(從頁面form傳入圖片)
1 image = request.FILES.get('product_img', '')
2 if image:
3 image_byte = image.read()
4 # 將byte轉換成str,再轉換成base64,去掉首部
5 image_base64 = str(base64.b64encode(image_byte))[2:]
二、前端上傳圖片base64,后台保存圖片
1 # 前端上傳的base64,存放在django的媒體文件庫中
2 if avatar_url:
3 b64_data = avatar_url.split(';base64,')[1]
4 data = base64.b64decode(b64_data)
5 image_url = os.path.join(MEDIA_ROOT_OLD, 'common/head_img/%s.jpg' % int(time.time()))
6 with open(image_url, 'wb') as f:
7 f.write(data)
8 # 截取media路徑,存放在字段中
9 image_url = image_url.split("project_name")[1].replace('\\', '/')[1:]
10 # user對象
11 user.avatar_url = image_url

