Saya memiliki Laravel API (PHP) dan saya ingin mengunggah gambar dari aplikasi Android Xamarin.Forms saya. Saya memiliki kode ini di bawah ini:

public void UploadImage(string filePath) {
    var httpClient = Globals.g_HttpClient;
    var request = new RestRequest("upload_attachments");
    request.Method = Method.PUT;
    request.AddHeader("KEY", Globals.APIKey);
    request.AddFile("File", filePath);
    request.AddHeader("Content-Type", "multipart/form-data");
    var response = httpClient.Put(request);
    var contentResponse = Convert.ToString(response.Content);
    Console.WriteLine(contentResponse);
}

Saya mengerti bahwa parameter untuk request.AddFile() masing-masing adalah name dan path-to-actual-file, tetapi tampaknya lampiran tidak dikirim. Ada 0 file yang dilampirkan ke permintaan saya, saya melihat permintaan yang sebenarnya dengan menggunakan dd($request) di Laravel. Ini adalah pengembalian untuk dd:

Illuminate\Http\Request {#50
  ...
  +request: Symfony\Component\HttpFoundation\ParameterBag {#51
    #parameters: []
  }
  ...
  +files: Symfony\Component\HttpFoundation\FileBag {#55
    #parameters: []
  }
  +cookies: Symfony\Component\HttpFoundation\ParameterBag {#53
    #parameters: []
  }
  +headers: Symfony\Component\HttpFoundation\HeaderBag {#56
    #headers: array:7 [
      "key" => array:1 [
        0 => "KcUup1OR8zRwI99BNRtapQJF8xPMsHj1"
      ]
      "accept" => array:1 [
        0 => "application/json, text/json, text/x-json, text/javascript, application/xml, text/xml"
      ]
      "user-agent" => array:1 [
        0 => "RestSharp/106.11.4.0"
      ]
      "content-type" => array:1 [
        0 => "multipart/form-data; boundary=-----------------------------28947758029299"
      ]
      "content-length" => array:1 [
        0 => "20426"
      ]
      "host" => array:1 [
        0 => "loan.phcci.coop"
      ]
      "accept-encoding" => array:1 [
        0 => "gzip, deflate"
      ]
    ]
    #cacheControl: []
  }
  ...
}

Seperti yang Anda lihat, +files mengembalikan array kosong. Di situlah seharusnya file-file itu jika ada yang disertakan dalam permintaan.

0
ehmhrgelcighsawmlv 3 Juni 2020, 10:39

1 menjawab

Jawaban Terbaik

Jawabannya sebenarnya karena saya menggunakan metode PUT padahal seharusnya saya menggunakan POST. Saya biasanya menggunakan PUT untuk membuat sumber daya tetapi tidak berfungsi ketika ada file yang dilampirkan.

0
ehmhrgelcighsawmlv 11 Juni 2020, 00:35