kineticjs 라이브러리를 사용하고 있는데 toDataURL
메서드를 사용하여 스테이지를 이미지로 저장하고 XMLHttpReuest
으로 서버에 업로드하는 스크립트가 있습니다. 모든 작품은 이미지를 서버에 저장하는 데 예상대로 완료되었지만 리디렉션 또는 변경 페이지를 가져올 수 없습니다.한 번만 리디렉션 XMLHttpRequest Complete Error
이미지를 생성하는 내 자바 스크립트/kineticjs 코드는 다음과 같습니다
function save() {
stage.toDataURL({
callback: function(dataUrl) {
var ajax = new XMLHttpRequest();
ajax.open("POST",'upload_screenshot.php?newname=<?php echo $newname;?>',false);
ajax.setRequestHeader('Content-Type', 'application/upload');
ajax.send(dataUrl);
}
});
}
upload_screenshot.php에 대한 나의 코드는 다음과 같습니다
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
$newname = $_GET['newname'];
$imagefile = 'final_images/'.$newname.'.png';
$filteredData=substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$fp = fopen($imagefile, 'wb');
fwrite($fp, $unencodedData);
fclose($fp);
header('Location: http://www.example.com');
}
?>
그래서 이미지가 서버에 저장됩니다하지만 난 다음 얻을 Chrome 자바 스크립트 콘솔의 오류 :
Uncaught Error: NetworkError: DOM Exception 19
이게 무슨 의미입니까?
내가 거짓 (동기)에서 공모 변경하는 경우 :
ajax.open("POST",'upload_screenshot.php?newname=<?php echo $newname;?>',false);
사실 (비동기)로 : 지금 파일이 다시 오류가 있지만없이 서버에 저장된 얻을
ajax.open("POST",'upload_screenshot.php?newname=<?php echo $newname;?>',true);
을 example.com에 리디렉션 없음
완벽! 덕분에 :) 부하를 도왔습니다. PHP는 그냥 일시적이지만 조언을 주셔서 감사합니다 –