web-dev-qa-db-ja.com

curl:(26)ファイルを開けませんでした

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固有のものです。

cURLエラー26はファイルを開けませんでした

致命的なエラー:キャッチされていないCurlException:26:スローされたファイル ""を開けませんでした

致命的なエラーを取得できませんでしたCurlException:26:ファイルを開けませんでした

14
halkujabra

ごめんなさい!私の悪い。ファイル名にファイルの拡張子を含めていませんでした。それを含めた後、動作しました。将来誰かが同じ間違いをする場合に備えて、私はこれに答えています。

9
halkujabra

PHP 5に変更した後、同様の問題が発生していました(@ uploadメソッドは廃止されたため、CURLFile)の使用を開始する必要があり、この問題の解決策はこの stack で見つかりました。

解決策:curlアップロードは相対パスでは動作しません、代わりにフルパスを使用します

25

私は今朝この問題を抱えていましたが、これで解決しました

fileUpload=@\"file, with comma .txt\"

そのため、ファイル名にコンマがある場合は、ファイル名を二重引用符で囲む必要があります(\ ")

3
Luis Cruz

@Guilhermeのような相対パスでも同様の問題がありました。私はbashスクリプトを実行していた:

bash test/script.sh

ただし、私のファイルはtestディレクトリ(bashの呼び出し元)ではなくbashスクリプトと同じディレクトリレベルにあるため、スクリプトはファイルを見つけることができませんでした。

私のための解決策:
1。/testにcdし、そこからbash script.shを実行します
2。絶対パスを使用する

2
Kevin

ルイス・クルーズは正しい:ファイル名の周りに引用符が必要ですが、質問に示されているように、「fileUpload」ではなく「file」キーワードを使用する必要がありました。

curl -X GET \
-H 'Content-Type: multipart/form-data' \
-F file=@"/path/to/file.ext" \ 
'http://Host:port/path/to/dir'
0
Gapmeister66