Файл образа Охттп представляет собой пустой массив

Я отправляю изображение и связанные данные из моего приложения для Android в серверную часть laravel php

final MediaType JPEG = MediaType.parse("image/JPEG; charset=utf-8");

RequestBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("filename", image.getFilename())
.addFormDataPart("hash", image.getHash())
.addFormDataPart("job_id", Integer.toString(image.getJobId()))
.addFormDataPart("team", Integer.toString(image.getTeam()))
.addFormDataPart("type", image.getType())
.addFormDataPart("image_file", image.getFilename(), RequestBody.create(JPEG, imagefile)).build();

Request request = new Request.Builder()
.url(url)
.post(body)
.build();

Response response = client.newCall(request).execute();

Бэкэнд PHP выглядит так

public function updateJobImage(array $request_data){
var_dump($request_data);

$toInsertImage = [
'job_id'    => $request_data['job_id'],
'type'      => $request_data['type'],
'filename'  => $request_data['filename'],
'team'      => $request_data['team'],
'hash'      => $request_data['hash']
];

$filepath = '/schedule_images/' . $request_data['hash'] . "/" . $request_data['filename'];

Storage::disk('s3_upload')->put($filepath, file_get_contents($request_data['image_file']));

Я могу получить все данные job_id / type / filename / team / hash совершенно нормально, но файл image_file является пустым массивом. Как мне справиться с получением файла изображения на стороне PHP

0

Решение

Также проверьте, существует ли image.getfilename () или нет

          final MediaType MEDIA_TYPE = new image.getfilename().endsWith("jpg") ?
MediaType.parse("image/png") :
MediaType.parse("image/jpeg");RequestBody requestBody = new MultipartBuilder()
.type(MultipartBuilder.FORM)
.addFormDataPart("image_file", System.currentTimeMillis()+"profile.jpg", RequestBody.create(MEDIA_TYPE, image.getfilename()))

.build();

Request request = new Request.Builder()
.post(requestBody)
.url(url)
.build();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]