2016-08-16 3 views
0

갤러리에서 이미지를 첨부하여 Firebase에 보낼 수 있습니다. 하지만 갤러리에서 firebase에 비디오를 업로드하고 싶습니다. 나는 firebase에 대한 문서를 읽었지만 아무 것도 찾을 수 없었습니다.갤러리에서 Firebase 서버로 비디오 보내기

누구나 전에이 작업을 수행 했습니까? 고급 도움을 주시면 감사하겠습니다!

코드 : 중포 기지 저장 장치에 파일을 업로드

if (resultCode == RESULT_OK) { 
      Uri selectedVideoUri = data.getData(); 
      StorageMetadata metadata = new StorageMetadata.Builder() 
        .setContentType("video/mpeg") 
        .build(); 
      if (selectedVideoUri == null) { 
       Log.e("selected video path", "null"); 
       finish(); 
      } else { 
       Log.v("selectedVideoPath", selectedVideoUri.toString()); 
       if (selectedVideoUri != null) { 
        StorageReference videoGalleryRef = storageRefVideo.child(selectedVideoUri + "_video"); 
        sendFileFirebaseVideo(videoGalleryRef, selectedVideoUri, metadata); 
       } 
      } 
     } 

private void sendFileFirebaseVideo(StorageReference storageReference, final Uri file, final StorageMetadata metadata) { 
    if (storageReference != null) { 
     final String name = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString(); 
     StorageReference videoGalleryRef = storageReference.child(name + "_video"); 
     UploadTask uploadTask = videoGalleryRef.putFile(file, metadata); 
     uploadTask.addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception e) { 
       Log.e(TAG, "onFailure sendFileFirebase " + e.getMessage()); 
      } 
     }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       Log.i(TAG, "onSuccess sendFileFirebase"); 
       Uri downloadUrl = taskSnapshot.getDownloadUrl(); 
       FileModel fileModel = new FileModel("video", downloadUrl.toString(), name, ""); 
       ChatModel chatModel = new ChatModel(userModel, "", Calendar.getInstance().getTime().getTime() + "", fileModel); 
       mFirebaseDatabaseReference.child(CHAT_REFERENCE).push().setValue(chatModel); 
      } 
     }); 
    } else { 
    } 

} 
+0

여기 중포 기지 문서에 포함되어 갤러리에서 활동 결과에 비디오를 선택하면서 여기

: https : //로 중포 기지 .google.com/docs/storage/android/upload-files. 문제가있는 경우 [문제를 재현하는 최소 코드] (http://stackoverflow.com/help/mcve)를 공유하십시오. 그것이 없으면 도움이 될 것입니다. –

+0

@FrankvanPuffelen 제 편집을 확인하십시오. 내 코드에 어떤 문제가있을 수 있습니까? –

+0

고마워. 뭐가 문제 야? –

답변

1
// Create instance of StorageReference 
StorageReference storageRef = FirebaseStorage.getInstance().getReference(); 
final StorageReference photoRef = storageRef.child("FolderToCreate").child("NameYoWantToAdd"); 
// add File/URI 
photoRef.putFile(Uri.fromFile(filename)) 
     .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       // Upload succeeded 
       Toast.makeText(getApplicationContext(), "Upload Success...", Toast.LENGTH_SHORT).show(); 

      } 
     }) 
     .addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       // Upload failed 
       Toast.makeText(getApplicationContext(), "Upload failed...", Toast.LENGTH_SHORT).show(); 
      } 
     }).addOnProgressListener(
     new OnProgressListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
       //calculating progress percentage 
       double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 

       //displaying percentage in progress dialog 
       progressDialog.setMessage("Uploaded " + ((int) progress) + "%..."); 
      } 
     }); 
+0

많은 도움이되었습니다. – grant

관련 문제