Я пытаюсь загрузить изображение из Android Studio на сервер Laravel, используя многокомпонентное кодирование Retrofit2, но я получаю сообщение «500 Internal Server Error», что означает, что что-то идет не так на стороне сервера, вероятно, но я не могу закрепить что это такое.
это мой интерфейсный вызов (Android Studio):
@Multipart
@POST("public/imagem")
Call<ResponseBody> uploadImagem(@Part MultipartBody.Part part,
@Part("name") RequestBody name,
@Part("animal_id") long animal_id,
@Part("ativo") int ativo);
это запрос (Android Studio):
//Create a file object using file path
File file = new File(filePath);
// Create a request body with file and image media type
RequestBody fileReqBody = RequestBody.create(MediaType.parse("image/*"), file);
// Create MultipartBody.Part using file request-body,file name and part name
MultipartBody.Part part = MultipartBody.Part.createFormData("upload", file.getName(), fileReqBody);
//Create request body with text description and text media type
RequestBody name = RequestBody.create(MediaType.parse("text/plain"), "image-type");
WebService.getInstance().getService().uploadImagem(part, name, animal_id, 1).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {
//THIS IS WHERE I WANT TO GET
} else {
//THIS IS WHERE IM GETTING AT EVERYTIME
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
это мой маршрут (Laravel):
Route::post('imagem','ImagemController@createImagem');
это функция createImagem внутри ImagemController (Laravel):
public function createImagem(Request $request){
$destinationPath = url('/midia'); //i have a "midia" folder inside "public" folder
$image = $request->file('part');
$name = $request->input('name');
$image->move($destinationPath, $name);
$dbPath = $destinationPath. '/'.$name;
$imagem = new Imagem();
$imagem->animal_id = $request->input('animal_id');
$imagem->img_url = $dbPath;
$imagem->ativo = $request->input('ativo');
$imagem->save();
return response()->json($imagem);
}
а это атрибуты внутри таблицы "Imagem" и их типы:

но я получаю 500 Internal Server Error, так что, вероятно, что-то на стороне сервера не соответствует тому, что было бы логически правильно, вы можете помочь мне найти, что не так в моем коде?
пс. У меня есть другие запросы к этому серверу, которые являются полностью функциональными, но все они - просто поля, в то время как у этого есть файл, который требует многочастного кодирования, в отличие от других.
EDIT:
Это журнал ошибок сервера:
[2019-06-11 21:21:03] local.ERROR: Call to a member function move() on null {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Call to a member function move() on null at /.../Controllers/ImagemController.php:28)
Кажется, я не могу получить файл с
$image = $request->file('part');