总结今天项目上传头像中有关base64遇到的问题
由于公司需要,在做项目的时候,涉及到上传头像的部分,在php中,上传图片是一种很简单的事情。
但是需要实现仿QQ,新浪需要对图片截取图片,就不那么容易,我采取的是canvas获取getDataURL,然后将数据通过ajax发送到后台服务器并保存到数据库中
再通过img的src属性进行读取数据库中的数据,在展现出来,但是因为项目中有留言板,这里会出现一个问题,就是图片保存为base64数据虽然可以减小一次http请求
但是重要的事情说三遍,只对于小图片可以,将大图片的getDataURL存取在数据库中,会导致加载过慢
所以不得不对此进行优化,即如何将base64编码在服务器端保存为图片
1.首先要用正则去掉开头的"data:image/png;base64,"
2.使用base64_decode函数进行解码
3使用file_put_contents将它保存为一张图片
4.数据库中存取img的路径