Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Blob数据上载到php服务器,从url检索数据_Php_Jquery_Ajax_Blob - Fatal编程技术网

将Blob数据上载到php服务器,从url检索数据

将Blob数据上载到php服务器,从url检索数据,php,jquery,ajax,blob,Php,Jquery,Ajax,Blob,我正在尝试从一个移动应用程序向php服务器上传一个图像,将文件转换为blob,然后用ajax上传blob。我在用手机拍照后得到了图片的url。上载的文件为空。我认为在读取文件并转换为blob时,这应该是一个错误 客户端 var blob; function get(){ var image = document.getElementById('image'); var file=image.src; var oReq = new XMLHttpRequest(); oReq.open("GE

我正在尝试从一个移动应用程序向php服务器上传一个图像,将文件转换为blob,然后用ajax上传blob。我在用手机拍照后得到了图片的url。上载的文件为空。我认为在读取文件并转换为blob时,这应该是一个错误

客户端

var blob;
function get(){

var image = document.getElementById('image');
var file=image.src;

var oReq = new XMLHttpRequest();
oReq.open("GET", file, true);
oReq.responseType = "arraybuffer";

oReq.onload = function(oEvent) {
   blob = new Blob([oReq.response], {type: "image/jpg"});
};


oReq.send();


var fd = new FormData();
fd.append("file", blob, "filename.jpg");
$.ajax({
    type: 'POST',
    url: 'http://site/upload.php',
    data: fd,
    processData: false,
    contentType: false
}).done(function(data) {
       alert(data);
});

}
服务器

<?php
$dir="uploads";

file_put_contents($dir."/image.jpg",$_POST['data']);

    echo "Done";  

?>

使用base64映像解决该问题

define('UPLOAD_DIR', 'images/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';

我看过这篇文章,从中复制了一段代码,但我无法得到结果。也许我应该试着上传Base64编码的图像?你能发布完整的客户端和服务器代码吗?如何以URL格式Blob:chrome传递我的Blob-extension://kllkepcdildfdhlnieemaolmnbkafgjc/b7bdfb7a-9153-4c82-a485-48b137091d63 或者文件名为b7bdfb7a-9153-4c82-a485-48B137091D1D63.webm