You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用cURL模拟浏览器向Perl CGI脚本上传文件?

解决Perl CGI脚本的cURL文件上传问题

你的curl命令失败的核心原因是缺少脚本要求的upload参数。

看你的Perl脚本逻辑:只有当$cgi->param('upload')存在时,才会处理上传的文件——这对应浏览器表单里的<input type="submit" name="upload" value="Upload">,提交表单时这个按钮的参数会被一起发送,但你当前的curl命令只传递了文件,没带这个参数,所以脚本还是返回表单页面,不会处理文件。

正确的cURL命令

只需要在原有命令基础上添加upload=Upload参数即可:

curl -X POST -F file_input=@test.txt -F upload=Upload myserver.com/cgi-bin/script.cgi

验证说明

  • -F upload=Upload模拟了浏览器提交表单时,submit按钮发送的参数,让脚本识别到这是一次上传请求
  • -F参数会自动设置multipart/form-data的请求头,和表单的enctype一致,不用手动指定

额外测试建议

如果想直接提取文件内容(跳过HTML格式),可以用工具过滤标签:

curl -X POST -F file_input=@test.txt -F upload=Upload myserver.com/cgi-bin/script.cgi | sed -n '/<pre>/,/<\/pre>/p' | sed 's/<pre>//;s/<\/pre>//'

内容的提问来源于stack exchange,提问作者creas443

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:20:56