Я пытаюсь загрузить файл в вызове API POST.
Но $ _FILES всегда пуст!
Файл, который я загружаю, является очень маленьким изображением, поэтому он не превышает проблему с лимитом.
Я не уверен, является ли это общей проблемой или проблемой, связанной с yii.
Я пробовал и с Postman, и с AdvancedRestClient, но получил один и тот же пустой массив для: var_dump($_FILES);
Также пробовал на моей локальной машине и на общем хостинге, но тоже самое.
Обновить:
public function saveFile($fName)
{
$postData = fopen($_FILES['image']['tmp_name'], "r");
$extension = substr($_FILES['image']['name'], strrpos($_FILES['image']['name'], '.'));
$filename = 'pics/' . $fName . $extension;
$fp = fopen($filename, "w");
while ($data = fread($postData, 1024)) {
fwrite($fp, $data);
}
fclose($fp);
fclose($postData);
return $fName . $extension;
}
Я использую обычный фрагмент, чтобы сохранить изображение.
Я думаю, что проблема не в сохранении изображения, а в том, что он не видит отправленные файлы по запросу.
Обновить
Я использовал другой фреймворк (не Yii) и получил правильное значение для $ _FILES:
array(1) { ["image"]=> array(5) { ["name"]=> string(9) "qmark.jpg" ["type"]=> string(10) "image/jpeg"["tmp_name"]=> string(24) "C:\xampp\tmp\php29DE.tmp" ["error"]=> int(0) ["size"]=> int(436656) } }
Так что я что-то не так делаю в Yii.
У меня нет пользовательского интерфейса, просто API POST (actionAdd).
Любая причина, почему я получаю $ _FILES пустым?
Форма имеет атрибут enctype = «multipart / form-data»?
Других решений пока нет …