二进制流 及 ajax图片上传

本文介绍如何使用Ajax技术实现图片的上传功能,包括前端通过FormData对象发送POST请求,并以JSON格式接收响应的过程。同时,还涉及了后端如何接收并处理上传的图片文件,如将图片转换为二进制流形式存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ajax图片上传
var upload = document.getElementById('uploadForm'); //获取整个form表单的id;
var fb = new FormData(upload); //jquery发送FormData
//如果追加一个
fb.append('demo','this is a demo');
$.ajax({
url: "?r=weather/img",
type: "POST",
data: image,
dataType: 'json', //以jsonp类型返回
processData: false, //告诉jquery不要发送数据
contentType: false, //不要射中content-type
});
如果采用二进制流的形式上传图片
需要在相应的控制器中获取
$tmp_name = $_FILES['img']['tmp_name'];
然后采用
$path = file_get_contents($tmp_name); //获取临时文件的路径,并解析称为字符串的形式
//为了安全起见,对路径进行加密
$image = base64_encode($path);
 
在file_get_contens 和 base64_encode 之间 可能会丢失一些数据 ,
所以在base64_decode之前 要进行匹配 ,要不然会导致数据不正确
主要解决为 $path = str_replace (' ','+',$image);
 
//如果在另一个方法中使用,应
$image = base64_decode($path); 解密
另外,需要
file_put_contents('./123.png',$image); //放入到文件中,现在则是图片啦
 
//然后 根据自己的需要可以入库。。。。

转载于:https://www.cnblogs.com/zhanghuilong/p/6496609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值