File upload: get return code 200 and the return is empty

Description

Original report: https://forum.mattermost.org/t/api-upload-file-not-uploading/6776

Steps to reproduce
Version 5.7.0.
Laravel PHP curl upload a file via API request:

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => env('MATTERMOST_URL')."/api/v4/files?channel_id=".$channel_id."&filename=".$destinationPath.'/'.$name,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('files' => $destinationPath.'/'.$name, 'channel_id' => $channel_id),
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer ".$_COOKIE['MMAUTHTOKEN'],
"Content-Type: multipart/form-data"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

Expected behavior
Sending the file path (which has already been temporarily saved in Laravel storage) and the channel through cURL, should receive the API return as follows:
{
“file_infos”: [
{
“id”: “string”,
“user_id”: “string”,
“post_id”: “string”,
“create_at”: 0,
“update_at”: 0,
“delete_at”: 0,
“name”: “string”,
“extension”: “string”,
“size”: 0,
“mime_type”: “string”,
“width”: 0,
“height”: 0,
“has_preview_image”: true
}
],
“client_ids”: [
“string”
]
}

Observed behavior
Receiving return with empty fields {“file_infos”: [], “client_ids”: []}

QA Test Steps

None

Mana

2

Assignee

Jesús Espino

QA Assignee

Lindy Isherwood

Reporter

Amy Blais

Epic Link

None

Fix versions

None

Mattermost Team

Sustained Engineering

Sprint

None

Labels

QA Testing Areas

None

GitHub Issue

None

Components

None

Severity

None
Configure