使用Best文件流来进行图片传送

题主,一个遨游编程的PHPer小菜鸟 ,在楼主的小白脑子里,如果要是更换头像,HTML 只能用FROM 表单提交,后台通过文件上传类处理图片并且把图片URL 存入MYSQL 中,但是这种方法或许有些单一或者狭隘,如果前台用AJAX 传送数据,PHPer 该怎么办? 最近查看手册,测试,百度,有了一下思路: 前端通过ajax 把图片 通过basez64 加码 转换成数据流,后端接受数据后解码把图片的PATH 存入MYSQL .下面上代码:

<!doctype html>
<html>
<head>
<body>
</body>
	##这里只标注重要代码,相信你也能看懂的##
			<!--//获取到图片的val值-->
			$("#touxiang").on("change",function() {		
			<!--/把获取到值加码:  getObjectURL  函数-->	
			 var srcs = getObjectURL(this.files[0]); 
			   $(".picture").attr("src",srcs); 
        })
				</head>
		</html>

<?php ``` //处理接受的base64加密数据流 $pic = trim(isset($_POST['image'])? $_POST['image']:''); //设置文件存放的目录 (这里好像只支持相对路径,绝对路径和远程服务器貌似不行,试了多次也没有结果) $upload = './MyFiles/'; //判断文件是否存在 if(file_exist($upload)){ mkdir($upload,777); } //正则匹配处理数据流 (以下代码参考有参考网上) if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $pic, $result)){ //这一步把 匹配到结果赋值给$type; $type = $result[2]; //验证$type 中是否有数组中的值 if(in_array($type,array('jpeg','png','gif','bmp','png'))){ //拼接成一个新的文件 $new_file = $up_dir.date('YmdHis').'.'.$type; //把生成的文件解码,存入到文件 if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $pic)))){ // 生成最终的文件 echo $img_path = str_replace('../../..', '', $new_file); ##其实到上面已经结束了,如果要是存到远程服务器中,这个路径是有问题的,所有我又拼接了一下路径,把这个路径存到数据库## //去掉‘.’ 生成的是:‘/MyFiles/’; $path = substr($img_path,1); //最终要存到数据库的url 地址 $newPath = 'http://127.0.0.1/demo'.$path; } } } ``` 2017.11.24 青春梦敲门砖 ?>

转载于:https://my.oschina.net/zmwpp/blog/1592467

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值