私は、複数の/フォームデータの投稿であるファイルのHTTP投稿を行うためにFiddlerが使用するフォーマットに対して開発したサーバーAPIを用意しています。私は同様のことをするためにカールを取得しようとしています(私はテストのためにFiddlerの使用を止めることができ、代わりにプログラム的にカールする別のプログラムコールを呼び出すことができます)。ファイルのアップロードを伴うマルチパート/フォームデータにcurlを使用する
これは、フィドラーでどのように設定されているのか、これは私が複製する必要があるものです。アップロードされたファイルがあるmyfile.htmlされています。特にこの部分の下部にあるファイルの内容が続く名前=一部、:だから私は必要なものと同様のものを製造するためのカールのためにある
---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="myfile.html"
Content-Type: text/html
<@INCLUDE *C:\myfiles\myfile.html*@>
---------------------------acebdf13572468--
。私はこれを試してみました:
curl -F "fieldNameHere=myfile.html" http://myapi.com/
私は私のファイルを完全に無視しているようです。 -vを追加すると、冗長な出力が得られます。
POST/HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Host: perl-h4.factset.io
Accept: */*
Content-Length: 166
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------981301fdaeb3
ファイルの内容はまったくありません(大きなHTMLファイルです)。だから私はここに欠けている何かが根本的にあるかもしれないと思う。どんなポインタも大歓迎です。このような
また、私がチェックしている他のStackOverflowの質問:What is the right way to POST multipart/form-data using curl?
しかし、彼らは基本的に私はここでやっているような何かを言っています。多分問題は私の構文ではないかもしれませんが、それはファイルを読みたくないという理由があります。
が、ノーボーナスポイントオプションです。.. 。=) –
うわー、問題はちょうど私が@記号を忘れていたことです。素晴らしい...ありがとう。私はこれが実際のファイルの名前であることをカールに伝えると思いますか? – Stephen
はい、かなりです。 – Scriptonomy