dongtangxi1584 2018-02-19 09:17
浏览 82

Okhttp图像文件是一个空数组

I am sending an image and associated data from my Android app to my laravel php backend

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();

The backend php looks like this

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']));

I can get all the job_id/type/filename/team/hash data perfectly fine but the image_file is an empty array. How do I handle getting the image file on the php side

  • 写回答

1条回答 默认 最新

  • douke9379 2018-02-19 09:24
    关注

    Please also check that image.getfilename() exist or not

              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();
    
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?