2017-04-05 9 views
0

火災ベースで画像をアップロードするときに問題があります。 は、ここでは、コードです:Firebaseで写真をアップロードする際の問題

//... 
    //Storage 
    mFirebaseStorage = FirebaseStorage.getInstance(); 
    mUserphotos = mFirebaseStorage.getReference().child("user/@userID"); 
    mTestphotos = mFirebaseStorage.getReference().child("user/testPhotos"); 
//... 
    public void uploadImage(Uri uri) { 
     Uri file = Uri.fromFile(new File("user/testPicture")); 
     StorageReference testPath = mTestphotos.child("images/"+file.getLastPathSegment()); 
     UploadTask uploadTask = testPath.putFile(file); 
     // Register observers to listen for when the download is done or if it fails 
     uploadTask.addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       // Handle unsuccessful uploads 
       Toast.makeText(MainActivity.this, "failure",  Toast.LENGTH_SHORT).show(); 
      } 
     }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL. 
       Uri downloadUrl = taskSnapshot.getDownloadUrl(); 
       Toast.makeText(MainActivity.this, "It worked", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
//... 

時間を節約するためにはい、私はURIが正しい写真を得ていると確信しています。よりuploadImage

+0

ここにあなたのlogcatを追加してください –

+0

あなたの失敗を変更してください。 –

答えて

0
//getting the storage reference 
    // filePath is Uri 
    // "uploads/" is STORAGE_PATH_UPLOADS 
    StorageReference sRef = storageReference.child("uploads/" + System.currentTimeMillis() + "." + getFileExtension(filePath)); 

    //adding the file to reference 
    sRef.putFile(filePath) 
      .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 

        //displaying success toast 
        Toast.makeText(getApplicationContext(), "File Uploaded ", Toast.LENGTH_LONG).show(); 

        //creating the upload object to store uploaded image details 
        Upload upload = new Upload(editTextName.getText().toString().trim(), taskSnapshot.getDownloadUrl().toString()); 

        //adding an upload to firebase database 
        String uploadId = mDatabase.push().getKey(); 
        mDatabase.child(uploadId).setValue(upload); 
       } 
      }) 
      .addOnFailureListener(new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception exception) { 
        progressDialog.dismiss(); 
        Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show(); 
       } 
      }) 
      .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
        //displaying the upload progress 
        double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 
        progressDialog.setMessage("Uploaded " + ((int) progress) + "%..."); 
       } 
      }); 
0

は、上記のコードを使用し

Uri uri = data.getData() ;// your image uri 
    StorageReference imagePathReference = StorageRef.child("Your path"); 
        Bitmap bmp = null; 
        try { 
         bmp = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData()); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 

        // convert bitmap to byte array to save image in firebase storage 
        ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
        if (bmp != null) { 
         bmp.compress(Bitmap.CompressFormat.JPEG, 60, bos); 
        } 
        byte[] dataNew = bos.toByteArray(); 

        uploadTask = imagePathReference.putBytes(dataNew); 
        uploadTask.addOnFailureListener(new OnFailureListener() { 
         @Override 
         public void onFailure(@NonNull Exception exception) { 
          Log.e("firebase ", " addOnFailureListener "); 
         } 
        }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
         @Override 
         public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
          // u will et download url here. 
         } 
        }); 
0
 private void uploadimage() { 
    progressbar.setMessage("Uploading Data"); 
    progressbar.setCanceledOnTouchOutside(false); 
    progressbar.show(); 
    String dateStamp = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss:SSS").format(new Date()).toString(); 
    final StorageReference imagepath = storageReference.child("Image" + dateStamp); 
    imagepath.putFile(selectedImage).addOnSuccessListener(
      new OnSuccessListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
        //Toast.makeText(Dashboard.this, "Image Stored Succesfully", Toast.LENGTH_LONG).show(); 

        getimage = taskSnapshot.getDownloadUrl(); 
        // bmp = ((BitmapDrawable) imagepreview.getDrawable()).getBitmap(); 
        Map<String,String> imagemap=new <String,String>HashMap(); 

        imagemap.put("imageurl",getimage); 

     databaseReference.child(Table_Dashboard).push().setValue(imagemap).addOnCompleteListener(new OnCompleteListener<Void>() { 
         @Override 
         public void onComplete(@NonNull Task<Void> task) { 
          if (task.isSuccessful()) { 
           imagepreview.setImageResource(R.mipmap.preview); 
           progressbar.dismiss(); 
           Toast.makeText(Dashboard.this, "Image Uploaded Succesfully", Toast.LENGTH_LONG).show(); 
          } 

         } 
        }); 
       } 
      }); 
} 

、これを試してみてもあります。それは私のために働く、あなたのエラーを解決することを願って