장치에서 pdf 파일을 선택하여 서버에 업로드하려고합니다. ACTION_GET_CONTENT
은 장치에서 pdf를 선택하는 데 사용됩니다.Uri of`ACTION_GET_CONTENT`을 사용하여 파일을 만들 수 없습니다.
sel_book.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setType("application/pdf");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select PDF"), 1);
}
});
활동 결과에 대해 Uri이 (가) 문자열로 저장됩니다.
public void onActivityResult(int requestCode, int resultCode, Intent result) {
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
Uri uri = result.getData();
String uriString = uri.toString();
File myFile = new File(uriString);
path = myFile.getAbsolutePath();
}
}
}
결과 경로는 /document/primary:Download/Aptitude_2016_17.pdf
입니다. 새 파일을 만들 때이 파일을 사용해야합니다. File selectedFile = new File(selectedFilePath);
. 그러나 File을 생성하지는 않습니다. selectedFile.isFile()
은 false를 반환합니다. 왜 그런지 모르겠습니다. 이 문제를 해결하도록 도와주세요. 미리 감사드립니다.
감사합니다. 내가 선택한 파일 시스템 경로를 얻을 수 있도록 도와 주시겠습니까? – Choxmi
@Choxmi : ** 파일 시스템 경로는 없습니다 **. 거기에있는 유일한 방법은'ContentResolver'와'openInputStream()'을 사용하여 자신의 파일을 만들고, 제어하는 일부 파일에'FileOutputStream'을 결합하는 것입니다. 그런 다음 표준 Java 입출력을 사용하여 입력 스트림에서 출력 스트림으로 복사하십시오. 그런 다음 원하는 용도로 사용할 수있는 콘텐츠가 포함 된 파일을 보유하게됩니다. 파일을 다 마쳤 으면 언제든지 파일을 삭제하십시오. – CommonsWare
알았어요. 답장 해주셔서 매우 감사합니다. – Choxmi