php图片上传为啥要base64上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php图片上传为啥要base64上传相关的知识,希望对你有一定的参考价值。

参考技术A 可以让别人看不到你的路径,还要base64可以存入数据库, 参考技术B 两点:
base64 的编码原理,大小比原文件大小大 1/3
base64 无法缓存,要缓存只能缓存包含 base64 的文件

Android选择/拍照 剪裁 base64/16进制/byte上传图片+PHP接收图片

转载请注明出处: http://blog.csdn.net/iwanghang/article/details/65633129
觉得博文有用,请点赞,请评论,请关注,谢谢!~


老规矩,先上GIF动态图,看个效果,如果符合你的项目或者确定你要了解的内容,再往下看吧:






完整项目下载地址:http://download.csdn.net/detail/iwanghang/9792768

贴代码:

1.PHP:

<?php

namespace app\\index\\controller;

class Uploadimg2
{
    public function index()
    {

        $param = file_get_contents("php://input");

        // 1
        // base64
        // 过来的字符串是“photo:xxxxx”,xxxxx就是base64的图片,下面这一行去掉了“photo:”
        $param1 = substr($param, 6);
        // 这里是转码 Unicode转Native
        $param2 = str_replace(" ","+",$param1);
        $param2 = str_replace("%2F","/",$param2);
        $param2 = str_replace("%2B","+",$param2);
        $param2 = str_replace("%0A","",$param2);
        // 这里是 base64_decode
        $image_content = base64_decode($param2);
        // 保存图片
        file_put_contents(ROOT_PATH . 'public' . DS . 'uploads/0/1.jpg', $image_content);
        //file_put_contents(ROOT_PATH . 'public' . DS . 'uploads/0/1.txt', $param);

        // 2
        // 16进制
        $binary_string = pack("H*" , $param1);
        file_put_contents(ROOT_PATH . 'public' . DS . 'uploads/0/2.jpg', $binary_string);
        //file_put_contents(ROOT_PATH . 'public' . DS . 'uploads/0/2.txt', $binary_string);

        // 3
        // 2进制
        file_put_contents(ROOT_PATH . 'public' . DS . 'uploads/0/3.jpg', $param);
        //file_put_contents(ROOT_PATH . 'public' . DS . 'uploads/0/3.txt', $param);

        return 111;
    }
}

2.Android:

uploadimg: