1. 程式人生 > >ajax以base64上傳圖片到django

ajax以base64上傳圖片到django

一、前端程式碼(將圖片轉換為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)

當然,也可以上傳到儲存伺服器

我是用的是網易雲的物件儲存,所以直接把二進位制丟給上傳檔案函式處理