使用Retrofit2(Android)上传大视频文件块

时间:2018-09-11 14:36:48

标签: android retrofit multipart chunks

对不起,我的英语。我需要将大文件上传到服务器。我为此使用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')
                   }
               },

现在,我不能低估如何从块中上传大型视频文件。请给我一些建议

0 个答案:

没有答案