ajax以base64上傳圖片到django
阿新 • • 發佈:2018-12-28
一、前端程式碼(將圖片轉換為base64)
$('#input').change(function(event) { function loadImg(){ //獲取檔案 var file = $("#input")[0].files[0]; //建立讀取檔案的物件 var reader = new FileReader(); //建立檔案讀取相關的變數 // var imgFile; //為檔案讀取成功設定事件 reader.onload=function(e) { imgFile = e.target.result; }; //正式讀取檔案 reader.readAsDataURL(file); } loadImg(); });
二、django程式碼
1、接收到前端傳來的base64後需要做一些處理
這個是請求中攜帶的base64圖片,這樣的base64放在前端可以直接使用,但是python中不可以
我們需要將data:image/jpeg;base64,這段刪除掉,可以直接使用split(',')
2、去掉不需要的部分後,使用base64解編碼
import base64 data = base64.b64decode(b64_data)
解碼後可以儲存在本地
with open('test.jpeg', 'wb') as f: f.write(data)
當然,也可以上傳到儲存伺服器
我是用的是網易雲的物件儲存,所以直接把二進位制丟給上傳檔案函式處理