간단히 말하면 사용자가 입력 할 수 없습니다. HTMLCanvasElement에서 toDataURL 메서드를 호출하면 이미지의 문자열 표현이 데이터 URL로 생성됩니다. 따라서 이미지를 저장하려고하면 브라우저에서 기본 파일 이름을 제공합니다 (예 : Opera가 데이터 URL이 png 파일 인 경우 default.png로 저장함).
많은 해결 방법이 있습니다.
function saveDataURL(canvas) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) {
window.location.href = request.responseText;
}
};
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.open("POST", "saveDataURL.php", true);
request.send("dataURL=" + canvas.toDataURL());
}
사람 : 가장 간단한 하나는 서버에 AJAX 호출을 서버 측에 이미지를 저장하고 액세스와 클라이언트 측에 저장할 수 있습니다 저장된 이미지의 URL을 반환하는 것입니다 서버 측에 이미지를 저장하려면 다음 PHP 스크립트를 사용하십시오.
$dataURL = $_POST["dataURL"];
$encodedData = explode(',', $dataURL)[1];
$decodedData = base64_decode($encodedData);
file_put_contents("images/faizan.png", $decodedData);
echo "http://example.com/images/faizan.png";
아마도 관련 : http://stackoverflow.com/questions/6723931/자바 스크립트 미리보기와 함께 새로운 파일 판독기 -api-and-dataurls-seem-efficient/6723973 # 6723973. – pimvdb
짧은 답변은 현재 브라우저에서 "불가능"합니다. 오랫동안 "그 이미지를 서버에 올려 놓고 거기에 저장하고 사용자에게 URL을 제공하십시오." – c69