커맨드 라인에서 Curl을 통해 POST 요청을해야합니다. 이 요청에 대한 데이터는 파일에 있습니다. PUT을 통해이 --upload-file
옵션 으로 수행 할 수 있음을 알고 있습니다.
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
커맨드 라인에서 Curl을 통해 POST 요청을해야합니다. 이 요청에 대한 데이터는 파일에 있습니다. PUT을 통해이 --upload-file
옵션 으로 수행 할 수 있음을 알고 있습니다.
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
답변:
당신은 --data-binary
논쟁을 찾고 있습니다 :
curl -i -X POST host:port/post-file \
-H "Content-Type: text/xml" \
--data-binary "@path/to/file"
위의 예 -i
에서 모든 헤더를 인쇄하여 진행 상황을 볼 수 있으며 -X POST
이것이 게시물임을 명시 적으로 나타냅니다. 와이어의 동작을 변경하지 않고 두 가지를 모두 안전하게 생략 할 수 있습니다. 파일 경로는 @
기호 앞에 와야 하므로 curl
파일에서 읽을 것을 알고 있습니다.
.xml
@
부분은 매우 중요합니다!
-d
는 curl
줄 바꿈을 제거하지만 --data-binary
그렇지 않습니다.
커맨드 라인에서 Curl을 통해 POST 요청을해야합니다. 이 요청에 대한 데이터는 파일에 있습니다.
당신이 할 필요가있을 것이다 --data
A를 인수 시작 @
:
curl -H "Content-Type: text/xml" --data "@path_of_file" host:port/post-file-path
예를 들어, 파일에 데이터 stuff.xml
가 있으면 다음과 같은 작업을 수행합니다.
curl -H "Content-Type: text/xml" --data "@stuff.xml" host:port/post-file-path
stuff.xml
파일 이름이 파일에 대한 상대 또는 전체 경로로 대체 될 수있다 @../xml/stuff.xml
, @/var/tmp/stuff.xml
...
--data "name@stuff"
.
대부분의 답변은 여기에서 완벽하지만 내 특정 문제로 여기에 도착했을 때 POST 방법을 사용하여 이진 파일 (XLSX 스프레드 시트)을 업로드해야합니다. 한 가지 누락 된 것이 있습니다. 더 폼 데이터 요소 , 주석 등의 파일이나 태그는 파일로 내 사건이었다으로 등. 따라서 여기를 사용 사례로 여기에 추가하여 다른 사람들을 도울 수 있습니다.
curl -POST -F comment=mycomment -F file_type=XLSX -F file_data=@/your/path/to/file.XLSX http://yourhost.example.com/api/example_url
HTTPS에는 기본 파일 크기 제한이 있기 때문에 HTTP 연결을 사용해야했습니다.
curl -i -X 'POST' -F 'file=@/home/testeincremental.xlsx' 'http://example.com/upload.aspx?user=example&password=example123&type=XLSX'