В контроллер методом POST приходит файл. Его нужно отправить на стороннее API используя CURL.
Сейчас у меня это реализовано так:
public function actionAddAttachment()
{
$attachmentFile = UploadedFile::getInstanceByName('attachment');
if ($attachmentFile === null) {
return ['success' => false, 'error' => 'File was not uploaded'];
}
$attachment = new Attachment(['fileResource' => $attachmentFile]);
if ($attachment->upload()) {
$result = Api::addAttachment($attachment);
$attachment->unlink();
return ['success' => $result === true];
}
return ['success' => false];
}
Метод upload:
public function upload()
{
$this->fileName = $this->fileResource->baseName . '.' . $this->fileResource->extension;
$this->path = 'attachments/' . $userToken . microtime() . '_' . $this->fileName;
return $this->fileResource->saveAs($this->path);
}
Запрос отсылается следующим образом:
$cfile = new \CURLFile(realpath($attachment->path));
$cfile->setPostFilename($attachment->fileName);
$data = ['file' => $cfile];
$curl_options = array(
CURLOPT_URL => $url,
CURLOPT_USERPWD => $pwd
CURLOPT_VERBOSE => 1,
CURLOPT_CUSTOMREQUEST => POST,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLINFO_HEADER_OUT => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 90,
CURLOPT_POSTFIELDS => $data,
);
Получается каждый раз перед отправкой запроса, я сохраняю файл и после попытки отправки я его удаляю.
Я пробовал создавать CURLfile на основе данных массива $_FILES (tmpName, name, type)
, но в этом случае не удается сделать запрос, CURL возвращает ошибку №26 - не удалось загрузить файл.
Как можно реализовать отправку файла напрямую из массива $_FILES без сохранения его в Attachments?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Запущено много процессов с одного скрипта tradephp с разными параметрами Как проверить есть ли такой процесс по названию с нужными параметрами?...
Данный код работает, файл скачивается на ПКПосле этого я делаю редирект, который не отрабатывает
У кого есть опыт пользования php+excel? Необходимо на странице выводить таблицу с файлаЕсть обязательные условия: - необходимо сохранять форматирование...
Пишу чат на php, при попытке залогиниться, в сессию записывается user_id, после успешной попытки, появляется страница чата, где написаны все сообщения(тк...