I am getting this error, when I am trying to call a box api through curl.
curl: (26) couldn\'t open file
Can\'t find why! I am calling thi
For my case, using relative path didn't work. But changing it to a absolute path fixes it.
This failed
curl -i -X POST -H "Content-Type: multipart/form-data" \
-F "file=@~/Downloads/xxx.csv" http://localhost:6708/upload
This worked
curl -i -X POST -H "Content-Type: multipart/form-data" \
-F "file=@/Users/myself/Downloads/xxx.csv" http://localhost:6708/upload
Luis Cruz is correct: quotes are required around the filename, but I needed to use the 'file' keyword, not 'fileUpload', as is it shown in the question.
curl -X GET \
-H 'Content-Type: multipart/form-data' \
-F file=@"/path/to/file.ext" \
'http://host:port/path/to/dir'
Sorry guys! My bad. I had not included extension of the file in the file name. After including it, it worked. I am answering this in case someone does the same mistake in future.
I had a similar problem with relative paths like @Guilherme did too. I was running my bash script with:
bash test/script.sh
However, my file was in the same directory level as the bash script and not the test
directory (where I was calling bash from), so the script could not find my file.
Solution for me:
1. cd into /test and run bash script.sh from there
2. Use absolute paths
I was having a similar problem after changing to PHP 5 (I was using the @
upload method and it was deprecated, so I had to start using CURLFile
), and the solution to my problem was found in this stack.
Solution: curl upload won't work with relative paths, use the full path instead
I was having this problem this morning but I solved with this
fileUpload=@\"file, with comma .txt\"
So you have to put some double quotes around the file name if you have commas in the file name ( \" )