@HellWalk

Что означает символ @ в пути к файлу?

Столкнулся со странной ошибкой при работе с внешним API - если путь к файлу без символа @ - то все отрабатывает нормально:

curl -k --location --request POST 'https://api.example/file-load/' --header 'Content-Type: multipart/form-data' --form 'filedata=/var/www/file.jpg'

{"message":"Файл с успешно загружен"}


Если же добавить @:

curl -k --location --request POST 'https://api.example/file-load/' --header 'Content-Type: multipart/form-data' --form 'filedata=@/var/www/file.jpg'

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
The requested resource<br />/file-load/<br />
does not allow request data with POST requests, or the amount of data provided in
the request exceeds the capacity limit.
</body></html>


За что отвечает символ @ в пути к файлу?

И именно он требуется в спецификации по curl в PHP:

Все данные, передаваемые в HTTP POST-запросе. Для передачи файла, укажите перед именем файла @, а также используйте полный путь к файлу.

https://www.php.net/manual/ru/function.curl-setopt.php

UPDATE
@ является обязательным параметром для указания пути к файлу
https://curl.haxx.se/docs/manpage.html#-F

Для проверки взял пример приема файла на PHP, попробовал отправить файл curl-ом, без @ - получил ошибку.
Почему у нужной API-шки наоборот, с @ ошибка а без неё ок - будем разбираться уже с ними.
  • Вопрос задан
  • 682 просмотра
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
man curl
[...] To force the 'content' part to be a file, prefix the file name with an @ sign.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
413 Request Entity Too Large
Это ответ Nginx
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы