[질문] 파일 다운로드 한 이미지를 webview에서 뿌려주고자 하는경우

안녕하세요!

제목에 적힌것 과 같은 문제로인하여 질문을 드립니다.

HttpClient로 접속하여 이미지를
var imgDir = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,“img”);
var img = Ti.Filesystem.getFile(imgDir.resolve(), downname);
img.write(this.responseData);

이런식으로 저장을 했습니다. ( applicationDataDirecotry, externalStorageDirectory 등등 사용해봤습니다… )

근데 webview 에서 img src 태그를 통하여 해당 경로의 이미지를 보여주고자 하는데

해당 경로 img.nativePath를 통하거나 해봤는덷 해당 경로를 찾기가 어렵습니다…

경로 찾는 방법이나 위와 같은 경험이 있으신분들 계신가요… ㅠㅠ

개발 사양입니다…
Titanium Studio : 3.1.3
MAC OS : 10.7
개발device : 안드로이드 4.3

찾기가 어렵다는게, img.nativePath 가 어떻게 나온다는 말인지요??

directory 들이 제대로 생성이 되어 있는지 한번 확인을 하시고, nativePath 에서 그 경로가 제대로 나오는지 봐야겠네요.

img.nativePath 가 앞에 “file://” 붙은 채로 native path 가 정확히 나오는지 확인하시고, 실제 거기 image 파일이 있는지 확인해보세요.

음 nativePath는 잘 찍히는것 같습니다만

var imgDir = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,“img”);
var img = Ti.Filesystem.getFile(imgDir.resolve(), downname);
img.write(this.responseData);

이런식으로 저장을 하면 /data/data/패키지명/app_appdata/img/ 폴더에 있어야 하는게 맞아야 할텐데…

저장을 했을때에 window7 탐색기로 검사시 해당 폴더에 파일이 있는지 확인이 잘 안됩니다.
img.write 한 파일을 디렉토리 검사를 통하여 해당 파일이 있는지 없는지 확인 했을때는
해당 파일 이름을 잘 가져오는데…

저장방법이 잘못 된 걸까요

제 경험으로 applicationDataDirecotry 에 mp3 파일 같은거 저장하니 제대로 writing 이 안되는 경우가 있었습니다. 정확하게 말하면 저장된 파일의 file size 는 맞는데, play 를 해 보니 안됐습니다. 이유는 잘 모르겠습니다. 그래서 제 경우는 externalStorage 에 뺐고, 거기는 됐습니다.

applicationDataDirectory 에 app 의 configuration 같은 JSON 파일하고, sqlite db 는 잘 저장이 됐는데… 저도 이해가 안되는 부분이 좀 있었는데, 그게 critical 한게 아니라 그냥 넘어갔더랬습니다.

img directory 가 creation 은 되어 있겠죠?

앱상에서 디렉토리 존재여부를 확인했을때는
정상적으로 해당 디렉토리가 존재하고 파일도 DirectoryListening을 통하여 출력했을때는
정상적으로 출력이 됩니다.

근데 window7 탐색기에서 확인했을 때는 디렉토리 및 이미지 파일이 아무것도 안보이네요…

externalStorgage도 마찬가지 입니다…
탐색기 상 확인이 안됩니다…

확인을 잘못하고 있는건지… 저장이 아예 안된건지…

저장이 안됐다면 app상에서 디렉토리 존재확인 할때부터 오류가 나야하는데 그렇지는 않고… ㅠㅠ

개발은 MAC 에서 하시고, emulator 를 쓰시는건가요??? device 를 쓰시는건가요?? win7 탐색기로 안된다는 말씀은 win7 으로 device 를 연결해서 그 디렉토리를 본다는 말씀이신가요?? device 자체에서 rooting 해서 그 디렉토리를 보면 이미지파일이 있어야 될텐데요.

나중에 원인이 밝혀지면 아마 또 어처구니 없는 원인일겁니다. 일단 이건 되는게 분명한겁니다. 제 앱에서 그런걸 하고 있으니까요…