2012-10-31 5 views
2

캔버스 요소를 base64 인코딩 이미지로 저장하는 사용자 지정 제품 구성자를 만들었습니다. 브라우저에서 이미지를 이미지 src로 반향시킬 때 제대로 작동합니다.Codeigniter | Base64 이미지를 파일로 저장

그래서이 같은 작품 :

$base64Image = $_POST['dataUrl']; 
echo '<img src="'.$base64Image.'" />'; 

내 문제는 CodeIgniter의 실 거예요 아마 그 너무 큰 있기 때문에, 세션이 base64로 이미지 SRC를 추가 할 수 있습니다. 사람들이 이미지를 서버에 쓰는 데 사용했던 몇 가지 방법을 시도해 보았습니다. 모두 오류를 던집니다. 누구든지 이미지/사용자 정의 폴더에서 'myimage.png'와 같은 서버의 이미지에이 base64 문자열을 쓰는 방법을 알고 있습니까?

도움을 주시면 감사하겠습니다.

+0

해당 dataURI를 HTML 탈출하거나 XSS 문제가있는 경우 –

+1

다음을 시도해보십시오. http://j-query.blogspot.in/2011/02/save-base64-encoded-canvas-image-to-png. html – GBD

답변

12

또한

$decoded=base64_decode($base64Image); 
file_put_contents('newImage.JPG',$decoded); 

참조 링크를 사용할 수 있습니다 http://j-query.blogspot.in/2011/02/save-base64-encoded-canvas-image-to-png.html

+0

그것은 여러 사용자가있는 시스템에서 꽤 심하게 나빠질 것입니다 ... –

+0

참조 링크가 정확히 필요한 것입니다. 이제 완벽하게 작동합니다. 감사! –

2

사용 tempnam() 스크립트에 의해 디렉토리 쓰기에 고유 한 파일 이름을 얻을 수 있습니다. 세션 변수 "thisUsersTempFile"을 해당 파일 이름에 맵핑 할 수 있습니다.

또는 임시가 아닌 다른 곳에서 연결을 저장할 수 있습니다. tmp 파일을 정리해야 할 경우 세션 파괴를 막을 수 있다고 생각하지 않기 때문에 필요할 것입니다. 기존 세션을 폴링하고 삭제 된 세션과 연관된 tmp 파일을 삭제할 수 있습니다. 당신은 cron 작업을 사용할 수 있습니다.

관련 문제