服务器环境CentOs7.4 php7
print_r($_FILES)
blob结构如下
Array
(
[blob] => Array
(
[name] => blob
[type] => image/jpeg
[tmp_name] => /tmp/phpu37qnN
[error] => 0
[size] => 1175745
)
)
很纳闷这个结构为什么没有图片数据流,只有图片的信息
闷了几个小时胡乱操作,突然灵光一闪 /[tmp_name] => /tmp/phpu37qnN 会不会是保存图片的临时文件,在服务器上cd到tmp目录,并没有这个文件,
硬着头皮
$content = file_get_contents($_FILES[‘blob‘][‘tmp_name‘]);
file_put_contents(‘/xxx/data/rr/test.jpg‘, $content);
我去图片竟然写入了,哈哈,果然存在这里,cd这个目录没有估计两种情况,一种是跑完php马上删除了,一种是文件隐藏了,这点没有深究。
js端发送blob类型的图片代码
if(xhr.readyState === 4){ blob = xhr.response; var oReq = new XMLHttpRequest(); oReq.open("POST", ‘http://xxx.eadaaen.com/c/ups232te‘, true); oReq.onload = function (oEvent) { var a = 1; }; var dataBlob = new Blob([blob], {type: ‘image/jpeg‘}); var form = new FormData(), request = new XMLHttpRequest(); form.append("blob", dataBlob); form.append("imgUrl", imgUrl); request.open("POST", ‘http://www.xxxxx.com/fff/uxxadate‘, true); request.onload = function (oEvent) { var adsdsdsds = oEvent.currentTarget.response; var dd = 2; }; request.send(form);
暂时先写下保存,后面有时间整理