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を返します。私はアップロードのステータスを表示するためにそれを使用することはできませんので、私はちょうどそれをコメントアウトします。