2016-12-29 3 views
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을 반환합니다. 업로드 상태를 표시하는 데 사용할 수 없으므로 잠시 댓글을 남깁니다.

답변

0

파일이 콘솔에 제대로 표시되지 않지만 생성 된 다운로드 URL을 사용하여 이미지를 볼 수 있기 때문에 파일이 제대로 업로드 된 것으로 보입니다. 지금은이 문제를 무시할 것입니다.

관련 문제