public class StorageActivity extends AppCompatActivity {
// Firebase 저장소를 사용하기 위한 객체 선언
private StorageReference mStorageRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_storage);
mStorageRef = FirebaseStorage.getInstance().getReference();
}
// Explorer를 실행 시키기 위한 메소드, 버튼 클릭 시 실행
public void openExplorer(View view) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// 이미지를 선택할 수 있는 프로그램 설정
// 갤러리 image/*, 동영상 video/*
intent.setType("image/*");
// 이미지를 선택할 수 있게 띄어줌
startActivityForResult(intent.createChooser(intent, "Select App"), 999);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
upload(uri);
}
}
// 파일을 업로드하는 메소드
public void upload(Uri file) {
Log.i("heepie", file.getPath()+"");
String tmp[] = file.getPath().split("/");
String filename = tmp[tmp.length-1];
StorageReference riversRef = mStorageRef.child("images/" + filename);
riversRef.putFile(file)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// Get a URL to the uploaded content
Uri downloadUrl = taskSnapshot.getDownloadUrl();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
// ...
}
});
}
}
댓글