一、從前端接收圖片對象,將其轉換為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