scaleform.minarto.com

ByteArray 를 FileReference.save 로 저장할 시의 확장자 버그 본문

ActionScript

ByteArray 를 FileReference.save 로 저장할 시의 확장자 버그

미나토 2009. 6. 26. 14:31



선우가 물어봐서 알게된 버그인데...


stage.addEventListener(MouseEvent.CLICK, click);

function click(e:MouseEvent)
{
var file:FileReference = new FileReference();
file.save("ㅇㄴㄹㄴㄹㄴㄹ", "aaa.txt")
}


물론 잘된다.... 그런데...




stage.addEventListener(MouseEvent.CLICK, click);

function click(e:MouseEvent)
{
var ba:ByteArray = new ByteArray();
var file:FileReference = new FileReference();
file.save(ba,"sss.png")
}


이것도 잘된다 싶지만...


ByteArray 를 저장할 때 윈도우 폴더 속성을 확장자 숨기기 를 해버리면 확장자가 없이 저장되어 버린다...
"sss" 로 저장되어 버린다... 폴더 옵션에 따라 확장자가 보이지만 않는게 아니라 실제 확장자가 없어지는 것이다.



save 메소드가 파일명만을 받고 확장자명을 받지 않는 것부터 잘못되었다고 해야하나... 암튼 폴더 속성을 알아낼 수 있는 API 가 없는 이상 "sss.png" 가 아닌 "sss" 란 파일로 저장되는 것이다.


"sss.png.png" 로 저장하는 꽁수도 있지만 그건 그 속성이 아닌 폴더에서는 "sss.png.png" 로 되어 버리니 정답은 아니다...

웬지 AIR 는 딴 방법이 있지 않을까 싶지만.... 플래시로서는 안된다...



클라이언트가 크레임을 걸면 일단은 서버를 통해 저장하는 방법을 쓸 수 밖에...