마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 자바서버로 이미지 전송하는 프로그램 구현중 질문이요!

+1 추천

http://warmz.tistory.com/601

이 코드를 참고해서 프로그램 구현중입니다

서버쪽에서 바꾼건  

          File f = new File("c:\\", fName+".jpg");

경로 추가한것 밖에 없구요

 

안드로이드에서 테스트할거라서 클라이언트는 좀 바꿨지만

            File f = new File(" /mnt/sdcard/"+MainActivity_02.fName+".jpg");
 
여기도 이런식으로 경로를 추가해 줬어요 저 경로에 파일 있는거 확인했구요
 
근데 파일을 생성하였다고 뜨고 실제 지정 경로에도 파일이 생성되었지만
딱 이름만 잇는 파일이 생성되었습니다 ㅠㅠ 용량도 0이구요
로그캣을 보니까
 
02-27 22:18:33.693: I/System.out(24852): 파일 전송 작업을 시작합니다.
02-27 22:18:33.693: I/System.out(24852): 파일 이름(totoro03)을 전송하였습니다.
02-27 22:18:33.693: W/System.err(24852): java.io.FileNotFoundException: /mnt/sdcard/totoro03.jpg: open failed: ENOENT (No such file or directory)
02-27 22:18:33.693: W/System.err(24852): at libcore.io.IoBridge.open(IoBridge.java:458)
02-27 22:18:33.693: W/System.err(24852): at java.io.FileInputStream.<init>(FileInputStream.java:78)
02-27 22:18:33.693: W/System.err(24852): at com.example.image_02.FileSender.run(MainActivity_02.java:111)
02-27 22:18:33.693: W/System.err(24852): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
02-27 22:18:33.703: W/System.err(24852): at libcore.io.Posix.open(Native Method)
02-27 22:18:33.703: W/System.err(24852): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
02-27 22:18:33.703: W/System.err(24852): at libcore.io.IoBridge.open(IoBridge.java:442)
02-27 22:18:33.703: W/System.err(24852): ... 2 more
02-27 22:18:34.614: D/BubblePopupHelper(24852): isShowingBubblePopup : false
02-27 22:18:34.614: D/BubblePopupHelper(24852): isShowingBubblePopup : false
02-27 22:19:33.992: D/BubblePopupHelper(24852): isShowingBubblePopup : false
 
이런식으로 세번쨰줄 보시면 파일을 못찾았다고 뜹니다 ㅠㅠ
다른 경로로도 해보고 갤러리에서 직접 상세정보에 잇는 경로를 찾아 쓴건데도 저러더라구요
경로를 어떻게 써야 파일을 찾을 수 있을까요??
ㅠㅠㅠ 조언 부탁드립니다
익명사용자 님이 2015년 2월 27일 질문

1개의 답변

0 추천
서버쪽에서 받은 파일명을 확인해보셔요

아마도

/mnt/sdcard/totoro03.jpg

이렇게 들어왔을겁니다.

이것을 서버쪽에서 파일명만 뽑아서 바꾸어줘야겠죠

String fName = dis.readUTF();
File ff = new File(fName);
fName = ff.getName();

그럼 잘 될겁니다.
nicehee (73,100 포인트) 님이 2015년 2월 28일 답변
답변 감사합니다!
파일명 확인해보니까 totoro03.jpg라고 잘 왔더라구요
경로만 신경썼었는데 알고보니까 퍼미션 문제였어서 Manifest에
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>

퍼미션 주고 해결했습니다! 조언 감사드려요!
...