【发布时间】:2014-06-27 05:13:55
【问题描述】:
我正在尝试将图像从移动应用程序上传到 php 服务器,将文件转换为 blob,然后使用 ajax 上传 blob。我用手机拍照后得到图片网址。上传的文件是空的。我认为这应该是读取文件并转换为 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";
?>
【问题讨论】:
-
我看过这篇文章,从中复制了一段代码,但我无法得到结果。也许我应该尝试上传 base 64 编码的图像?