js发送blob数据, php端接收blob数据

服务器环境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);

  

暂时先写下保存,后面有时间整理