使用bash通过POST上传文件时遭遇curl: (26)错误求助
解决curl上传文件时出现
curl: (26) Failed to open/read local data from file/application错误的方法 检查文件是否存在
先确认$file变量指向的文件真实存在,执行ls -l "$file"查看结果。如果提示“No such file or directory”,说明路径写错了,把$file改成正确的绝对路径(比如/home/user/docs/test.jpg)或者相对路径。检查文件读取权限
执行ls -l "$file"看权限列,确保当前用户有读权限。如果没有,用chmod +r "$file"给文件添加读权限。处理路径里的特殊字符
如果文件路径包含空格、引号这类特殊字符,一定要用双引号包裹$file,也就是保持-F "file=@$file"的写法,别去掉双引号。可以先执行echo "$file"确认变量展开后的路径是否正确。验证curl命令语法
确保命令里的@符号没被转义或遗漏,正确的命令格式示例:curl -X POST -F "file=@$file" https://your-upload-target.com另外要确认
$file变量已经正确赋值,别是空值。排查系统限制(少见情况)
如果上面的方法都没用,可能是SELinux或AppArmor阻止了curl读取文件,临时执行sudo setenforce 0关闭SELinux测试下,要是问题解决了,再配置对应的规则允许curl访问该文件路径。
内容的提问来源于stack exchange,提问作者Geremia
相关产品推荐
相关产品推荐

