我有一个XMLHttpRequest
我正在发送图像以保存在我的Amazon s3存储桶上。它工作正常,文件进入我的桶,但我没有回复说它正在进行中或已成功上传。我的代码如下:
html页面中的Javascript代码:
var ajax = new XMLHttpRequest();
ajax.open("POST",'http://www.xxxx.php',false);
ajax.setRequestHeader('Content-Type', 'application/upload');
ajax.send(theImage);
ajax.onreadystatechange=function(){
if (ajax.readyState==4 && ajax.status==200) {
console.log('success');
}
else {
console.log('ongoing...');
}
}
xxxx.php中的PHP代码:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$imageData = $GLOBALS['HTTP_RAW_POST_DATA'];
$filteredData = substr($imageData, strpos($imageData, ",")+1);
$imgFileString = base64_decode($filteredData);
$s3Filename = time().'.png';
if($s3->putObjectString($imgFileString, $bucket , $s3Filename, S3::ACL_PUBLIC_READ) ){
echo "SUCCESS";
}
else{
echo "ERROR";
}
}
else {
echo "EMPTY";
}
?>
如何回复上传成功上传内容或发生错误?
答案 0 :(得分:0)
ajax.open("POST",'http://www.xxxx.php',false);
^^^^^^
您正在发出同步请求,因此在分配事件处理程序之前,正在发出请求并收到响应。不要那样做。删除false
(或将其更改为true
)。