对不起,我的英语。我需要将大文件上传到服务器。我为此使用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')
}
},
现在,我不能低估如何从块中上传大型视频文件。请给我一些建议