Curlからbox apiを呼び出そうとすると、このエラーが発生します。
curl: (26) couldn't open file
理由が見つかりません!正しいファイル名でこのAPIを呼び出しています-
curl https://upload.view-api.box.com/1/documents \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-type: multipart/form-data" \
-F file=@A_correct_file_name
私はすでに3つの質問すべてを見てきましたが、そのうち2つは未回答で、1つはFacebook固有のものです。
ごめんなさい!私の悪い。ファイル名にファイルの拡張子を含めていませんでした。それを含めた後、動作しました。将来誰かが同じ間違いをする場合に備えて、私はこれに答えています。
PHP 5に変更した後、同様の問題が発生していました(@
uploadメソッドは廃止されたため、CURLFile
)の使用を開始する必要があり、この問題の解決策はこの stack で見つかりました。
解決策:curlアップロードは相対パスでは動作しません、代わりにフルパスを使用します
私は今朝この問題を抱えていましたが、これで解決しました
fileUpload=@\"file, with comma .txt\"
そのため、ファイル名にコンマがある場合は、ファイル名を二重引用符で囲む必要があります(\ ")
@Guilhermeのような相対パスでも同様の問題がありました。私はbashスクリプトを実行していた:
bash test/script.sh
ただし、私のファイルはtest
ディレクトリ(bashの呼び出し元)ではなくbashスクリプトと同じディレクトリレベルにあるため、スクリプトはファイルを見つけることができませんでした。
私のための解決策:
1。/testにcdし、そこからbash script.shを実行します
2。絶対パスを使用する
ルイス・クルーズは正しい:ファイル名の周りに引用符が必要ですが、質問に示されているように、「fileUpload」ではなく「file」キーワードを使用する必要がありました。
curl -X GET \
-H 'Content-Type: multipart/form-data' \
-F file=@"/path/to/file.ext" \
'http://Host:port/path/to/dir'