Загружайте большие видеофайлы с помощью retrofit2 (Android) - PullRequest
0 голосов
/ 11 сентября 2018

Извините за мой английский. Мне нужно загрузить большие файлы на сервер. Я использую retrofit2 для этого. Теперь я загружаю файлы без кусков, я отправляю один файл. Как это:

интерфейс

@Multipart
@POST("/api/upload")
Observable<UploadVideoResponse> uploadVideo(@Header("Authorization") String userToken,
                                            @Part MultipartBody.Part video);

как это я создаю MultipartBody.Part video

 public static MultipartBody.Part getMultipartVideoBody(String pathVideo) {
        try {
            File videoFile = getFile(pathVideo);
            RequestBody videoBody = RequestBody.create(MediaType.parse("video/*"), videoFile);
            String fileName = videoFile.getName();
            return MultipartBody.Part.createFormData("video", fileName, videoBody);
        }catch (Exception e){
            Log.e("File ", e.getMessage());
            return null;
        }
    }

На сервере используйте laravel-chunk-upload и для загрузки чанков в пользовательском интерфейсе, например так:

dropzoneOptions: {
                   url: '/uploadtest',
                   dictDefaultMessage: 'Click here',
                   chunksUploaded: function (file, done) {
                       done()
                   },
                   thumbnailWidth: 150,
                   maxFilesize: 250,
                   chunking: false,
                   chunkSize: 1000000, // Bytes
                   required: true,
                   maxFiles: 1,
                   acceptedFiles: 'video/*',
                   headers: {
                       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                   }
               },

Теперь я не могу понять, как я могу загрузить большой видеофайл из кусков. Пожалуйста, дайте мне совет

...