base64圖上上傳保存到服務器

使用$.post提交表格時,圖片是沒法上傳的(除非用編輯器插件什麼的,那些都比較大)。 這是一個新思路,圖片轉base64編碼,提交上去,固然,圖片不能太大,超過上傳限制是不行的。php

function base64_upload($base64) {
    $base64_image = str_replace(' ', '+', $base64);
    //post的數據裏面,加號會被替換爲空格,須要從新替換回來,若是不是post的數據,則註釋掉這一行
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
        //匹配成功
        if($result[2] == 'jpeg'){
            $image_name = uniqid().'.jpg';
            //純粹是看jpeg不爽才替換的
        }else{
            $image_name = uniqid().'.'.$result[2];
        }
        $image_file = "./upload/test/{$image_name}";
        //服務器文件存儲路徑
        if (file_put_contents($image_file, base64_decode(str_replace($result[1], '', $base64_image)))){
            return $image_name;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

出處html

相關文章
相關標籤/搜索