我正在尝试使用cURL来发布文件的内容,就好像我已将该内容粘贴到html文本区域中一样。 也就是说,我不想上传文件,我只想用一个名为 bar.txt 的文件的文本填充一个名为 foo 的 post 参数。 bar.txt的内容可能包括换行符、引号等。
这可能吗?
谢谢。
编辑:我最后发现了如何做到这一点:
curl --data-urlencode "foo@bar.txt" http://example.com/index.php
这将获取文件栏的内容.txt,url 对其进行编码,将结果字符串放在 POST 请求中名为 foo 的参数中 http://example.com/index.php。
我不能说其他人建议的解决方案是否有效,但上面的解决方案似乎是最好的方法。
你可以执行以下操作:
$ curl --data "foo:$(cat foo.txt)" http://localhost/yourfile.php
请注意,正如cacheguard所说,您可能希望对文件进行编码。要在 base64 中对其进行编码,只需像这样修改前面的命令:
$ curl --data "foo:$(cat foo.txt | base64)" http://localhost/yourfile.php
您应该对文件的内容进行编码/解码(例如,在 Linux 下使用 base64 命令)。
文件.txt:
8<----------------------------
Hello World
I am a Secure Web Gateway
8<----------------------------
base64 foo.txt | base64 -d