fix file upload for modern php versions #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Загрузка файлов через передачу значения @путь/к/файлу отключена с 7 версии php, теперь доступно только через обертку CURLFile.
Нужно убрать принудительное преобразование data через http_build_query
Важно, чтобы CURLOPT_POST был выставлен до CURLOPT_POSTFIELDS
Для справки:
Значение для curl_setopt CURLOPT_POSTFIELDS может быть либо строкой, либо массивом уже очень давно, начиная с php 5.2 - точно.
Начиная с версии 5.5 добавилась возможность загружать файлы через формирование объекта CURLFile и параметр CURLOPT_SAFE_UPLOAD, который запрещает загружать файлы через @путь/к/файлу (по умолчанию отключен)
С версии 5.6 значение по умолчанию для CURLOPT_SAFE_UPLOAD становится true
С версии 7.0 вводится запрет на загрузку файлов через @
Раньше:
Теперь: