0
Firebase 스토리지에 이상한 문제가 있습니다. 최근에 파일을 완벽하게 업로드 할 수있었습니다. 하지만 업로드가 아직 완료되지 않은 경우에도 업로드가 시작됩니다. 업로드시 콘솔에 0B가 표시되고 파일 확장자는 application/octet-stream입니다. 이전에 업로드 할 수 있었던 것과 동일한 이미지를 업로드하고 있으며 코드를 변경하지 않았습니다.Firebase 스토리지 성공적으로 업로드 업로드하지만 Firebase 콘솔의 업로드 크기는 0B입니다
여기에 내 코드
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_IMAGE) {
if (data == null) {
//Display an error
return;
}
try {
//UPLOAD IMAGE
InputStream inputStream = getActivity().getContentResolver().openInputStream(data.getData());
if(inputStream != null) {
img_upload_school_pic.setImageBitmap(BitmapFactory.decodeStream(new BufferedInputStream(inputStream)));
img_upload_school_pic.setVisibility(View.INVISIBLE);
//SHOW PROGRESSBAR
prg_upload.setVisibility(View.VISIBLE);
//UPLOAD IMAGE
ImageUploader uploader = new ImageUploader();
uploader.uploadSchoolDp(inputStream, "sample.jpg", img_upload_school_pic, prg_upload);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
업 로더 클래스
public class ImageUploader {
private StorageReference rootRef = FirebaseStorage.getInstance().getReference().getRoot();
public void uploadSchoolDp(final InputStream inputStream, String key,
final ImageView img_upload_school_pic, final ProgressBar prg_upload) {
StorageReference schools_dp_ref = rootRef.child("samplefoler");
StorageReference img_df_ref = schools_dp_ref.child(key);
UploadTask uploadTask = img_df_ref.putStream(inputStream);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
//HIDE PROGRESSBAR AND SHOW IMAGEVIEW
img_upload_school_pic.setVisibility(View.VISIBLE);
prg_upload.setVisibility(View.INVISIBLE);
}
});
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
e.printStackTrace();
}
});
//
// uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
// @Override
// public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
// txt_progress.setText(taskSnapshot.getBytesTransferred() + " of " +
// taskSnapshot.getTotalByteCount());
// Log.d(null, Double.toString(taskSnapshot.getTotalByteCount()));
// }
// });
}
}
의 코드입니다 그리고 한 가지 더가있다. taskSnapshot.getTotalByteCount()는 -1을 반환합니다. 업로드 상태를 표시하는 데 사용할 수 없으므로 잠시 댓글을 남깁니다.