Проблема с путем загрузки файла в cURL

#windows #curl #cmd

#Windows #curl #cmd

Вопрос:

Начинающий пользователь в cURL. Я действительно борюсь с форматом пути, используемым для загрузки файла через cURL.

 curl -X POST https://XXXXXXXXX … -F file=@C:UsersJohnDownloadstest.csv
  

Я продолжаю получать следующее сообщение об ошибке «curl: (26) Не удалось открыть / прочитать локальные данные из файла / приложения»

Большинство приведенных примеров начинаются с file=@/home/, что сбивает с толку, поскольку, насколько я понимаю, у меня нет такого каталога. Кроме того, в примерах используется «/» вместо «». Почему это так?

Кто-нибудь может дать некоторые отзывы о том, как правильно записать путь к файлу?

Спасибо!

Комментарии:

1. Какой curl вы используете? Порт Windows10 в windows system32? WSL и с каким дистрибутивом? cygwin? mingw? mingw64? gnuwin? что-то еще? Во-первых, этот синтаксис работает для меня. Но, похоже, это не вопрос или проблема программирования.

2. Не уверен, что понимаю вопросы. Я скачал версию для 64-разрядной версии Windows 7.72.0 с curl.haxx.se/download.html ….

3. в Windows есть псевдоним с именем «curl» для программы «Invoke-Webrequest», когда мы просто запускаем curl, он фактически запускает этот псевдоним вместо загруженного вами двоичного файла curl. Поэтому попробуйте вызвать curl, используя абсолютный путь к загруженному двоичному файлу curl, и вставьте полную ошибку, которую вы получаете

4. Максим: на этой странице есть 5 разных сборок версии 7.72.0 для Windows-64, в том числе одна с использованием cygwin — вы ее использовали? cygwin является более или менее портом Unix и использует другой синтаксис имени файла, чем «обычная» Windows. Для другого (Viktor Szakats) ссылка указывает, что он использует mingw, что также меняет некоторые вещи, но меньше. Что произойдет, если вы попробуете другой файл? Несуществующий файл (имя)? @confusedgenius: псевдоним указан только в powershell, а не (в остальной части) Windows, и формат сообщения об ошибке, опубликованный, безусловно, является реальным curl, А НЕ powershell.

Ответ №1:

Наконец-то решил это! После некоторых проб и ошибок я выяснил, что синтаксис пути должен был использовать двойную обратную косую черту, поэтому:

 C:\Users\John\Downloads\test.csv 
  

и не:

 C:UsersJohnDownloadstest.csv
  

Честно говоря, я никогда раньше не использовал этот синтаксис и не понимаю, зачем это требуется. Ваши комментарии / ввод, безусловно, будут оценены.