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:
\\uploadimg\\MainActivity.java
以上是关于php图片上传为啥要base64上传的主要内容,如果未能解决你的问题,请参考以下文章