2

你如何在 curl bash 中发布二进制变量?

#!/usr/bin/env bash
IMAGE=$(curl "http://www.google.com/images/srpr/logo3w.png")
curl --data-binary "$IMAGE" --request "POST" "http://www.somesite.com"

上传时,Curl 似乎确实损坏了图像。

Curl 可以选择将响应写入磁盘然后从中读取,但仅在内存中执行此操作会更有效。

4

2 回答 2

2

尝试消除变量 ... 如下:

curl "http://www.google.com/images/srpr/logo3w.png" | curl --data-binary - --request "POST" "http://www.somesite.com"

从 curl 手册页:

如果您以字母 @ 开始数据,则其余部分应该是从中读取数据的文件名,或者 - 如果您希望 curl 从标准输入中读取数据。

编辑:也从手册页:

--raw 使用时,它会禁用所有内部 HTTP 内容解码或传输编码,而是让它们原封不动地传递。(在 7.16.2 中添加)

如果应用于任何一方或双方会发生什么?

于 2013-01-06T21:02:14.073 回答
1

我有一个相关的问题,我想动态地从给定文件夹中卷曲文件。

curl --data-binary directory/$file --request "POST" "http://www.somesite.com" 不起作用 - 上传字符串“directory/myFile.jar”而不是实际文件。

添加@符号 curl --data-binary @directory/$file --request "POST" "http://www.somesite.com"修复它。

于 2015-02-28T17:14:36.217 回答