我在这里有一个小问题,我怎样才能告诉 cURL 专门将文件附加到请求中?
如果我使用 cURL 上传文件,则常用方法是将其作为 POST 数据数组的一部分附加,其值前面有 @,例如:
CURLOPT_POSTFIELDS=>array('my-file'=>'@my-file.txt')
这显然可行,但我有两个问题:
- 如果它实际上不是我正在上传的文件怎么办?如果我的 POST 值实际上是“@my-file.txt”并且它尝试上传文件怎么办?它创造了一个我拼命想要避免的漏洞。
- 如何从 URL 上传文件?我是否必须下载它,将其存储在临时文件夹中,然后使用该临时文件夹中的 @ 附加它?为什么我不能只给 cURL 我希望用作文件的内容?
cURL CURLOPT_INFILE 不是一个选项,因为它不会显示为 $_FILES 数组的一部分。
依赖 POST 字段值中的 @ 符号似乎是 cURL 中的这样一个漏洞。有办法解决吗?为什么没有 CURLOPT_FILEFIELDS 数组?命令行 cURL 对此有一个单独的标志 (-F),但出于某种原因,我不认为它是 PHP 中的一个选项。
任何帮助将不胜感激,谢谢!