2016-09-18 3 views
0

기본적으로 일부 html5 vidoe, canvasbutton 태그를 사용하여 이미지를 캡처하고 있지만이 이미지를 서버에 업로드하기 전에 이미지를 인터넷 임시 디렉토리에 저장 한 다음 이미지에 액세스하여 이미지를 업로드해야합니다. 서버, 지금까지 내가 할 수있는 캔버스의 이미지를 캡처 할 수 있지만 로컬 PC의 인터넷 임시 디렉토리에 저장하는 방법을 몰라, 나는 이미 답이캔버스 이미지 저장 방법 서버에 업로드하기 전에?

var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); window.location.href=image;

을했다 질문을 발견 위의 코드에서 문제는 클라이언트에 다운로드 상자를 띄우고 클라이언트에 저장 위치를 ​​요청하지만 아무 것도 묻지 않고 이미지를 저장해야한다는 것입니다. o 사용자를 차단하고 인터넷 임시 디렉터리에 저장하십시오. 여기

나는 누군가가 내가 이미지를 저장 eventListener 이상에 추가하려면 어떤 코드 말해 그래서 만약 내가 정말 감사하겠습니다 캔버스 이미지

document.getElementById("snapButton").addEventListener("click", function() { 
context.drawImage(video, 0, 0, 640, 480); 
var myImg = document.getElementById("myImg"); 
myImg.src = canvas.toDataURL(); 
}); 

을 코드입니다.

+1

_ "위의 코드와 관련된 문제는 다운로드 상자를 클라이언트에 보내고 저장할 위치를 클라이언트에게 요청하지만 인터넷 임시 디렉터리로 사용자에게 아무 것도 보내지 않고 이미지를 저장해야한다는 것입니다."_ 사용자 만 설정할 수 있습니다. 어느 폴더에 파일을 다운로드했는지는 브라우저 환경 설정에 저장해야합니다. 왜 사용자 파일 시스템에 파일을 저장할 디렉토리를 사용자가 선택할 수 없도록하고 싶습니까? – guest271314

+0

아니요 질문에 잘못이 있습니다. 이미지를 다운로드하고 싶지 않습니다. 직접 임시 폴더에 저장하려고합니다. – darees

+0

_ 아니요. 잘못된 질문이 있습니다. 이미지를 다운로드하고 싶지 않습니다. 직접 임시로 저장하고 싶습니다. 폴더 "_"다운로드 "와"저장 "의 차이점은 무엇입니까? 이미지를 "임시 폴더"에 저장하는 목적은 무엇입니까? 사용자의 파일 시스템에서 "임시 폴더"를 의미합니까? – guest271314

답변

1

작은 데이터 조각 (< 5MB)을 보유하기위한 임시적인 장소가 필요하다면 localStorage을 사용할 수 있습니다. localStorage을 앱 데이터의 로컬 임시 저장 영역으로 생각하십시오. LocalStorage에는 사용자의 권한이 필요하지 않습니다.

그러나 확실한 보안상의 이유로 사용자의 디스크에 아무 것도 저장하면 사용자의 팝업을 피할 수 없도록 권한이 필요합니다.

+0

'canvas.toDataURL()'이 변수로 저장 될 수있는 경우 왜'localStorage'에 저장합니까? – guest271314

+0

@ guest271314 질문은 사용자의 기기에 저장할지 묻습니다. 예, 서버에 직접 dataURL을 AJAX 할 수 있습니다 (아마도 그렇게 할 것입니다). 질문자에게 왜이 요구 사항이 필요한지 물어야합니다. – markE

+0

예, 논평에서 OP에게이 질문을 제기했습니다. 요구 사항이 실제로 무엇인지 명확하게 설명하지는 않습니다. OP는 마치 두 개의 개별 프로세스 인 것처럼 "저장"및 "다운로드"라는 용어를 사용합니다. _ "잘못된 질문이 없습니다. 이미지를 다운로드하고 싶지 않습니다. 직접 임시 폴더에 저장하고 싶습니다."_ 당신의 제안은 사용자의 파일 시스템에 파일을 저장할 것이지만 이미지의'데이터 URI' 대신'Blob URL '을 저장함으로써'localStorage'에서 참조 된 파일의 전체 크기를 줄일 수 있습니다. – guest271314

관련 문제