![如何使用 curl 上传并发布具有以下形式的文件?](https://linux22.com/image/551860/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20curl%20%E4%B8%8A%E4%BC%A0%E5%B9%B6%E5%8F%91%E5%B8%83%E5%85%B7%E6%9C%89%E4%BB%A5%E4%B8%8B%E5%BD%A2%E5%BC%8F%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我尝试上传到的页面的表单 html 如下:
<form action="upload_handler" method="POST" enctype="multipart/form-data">
<input type="file" name="myfile">
<input type="submit" name="submit" value="Upload">
</form>
我尝试了以下方法,但均不起作用:
curl -b cookies.txt -F "myfile=@/xxx/java_pid30806.hprof;submit=Upload" http://xxx.yyy.com > curlout.txt
curl -b cookies.txt --data-binary @/xxx/java_pid30806.hprof http://xxx.yyy.com > curlout.txt
其中 cookies.txt 包含通过之前的 curl 命令成功登录后获取的会话 cookie。
答案1
首先,您的命令有一个错误:-b 不适用于 cookiejar,即 cookie 文件。您应该使用 -c。-b 用于指定单个 cookie。
尝试这个:
curl -c cookies.txt --form myfile=@/path/to/file --form submit=Upload http://xxx.yyy.com