当前位置: 首页 > 知识库问答 >
问题:

使用curl post Multipart/Form-Data变量和图像

陈浩
2023-03-14
-----------------------------291231848620019\r\nContent-Disposition: form-data; name="pin"\r\n\r\ndf8794b1ec63c7094f6498f7a1322bcc\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="yourdata"\r\n\r\nonly test\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="your_file"; filename="chansy.jpg"\r\nContent-Type: image/jpeg\r\n\r\n{content-of-image-file-here}\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="birth_date[]"\r\n\r\n1\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="birth_date[]"\r\n\r\n1\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="birth_date[]"\r\n\r\n1970\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="your_email"\r\n\r\nkrunker@asia.com\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="code"\r\n\r\n\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="pass"\r\n\r\npass_sample\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="act"\r\n\r\nUpdate Changes\r\n-----------------------------291231848620019\r\nContent-Disposition: form-data; name="your_name"\r\n\r\njust me\r\n-----------------------------291231848620019--\r\n
$img=file_get_contents($filename);    
$data = array('pin' => $pin, 'yourdata' => $_POST['yourdata'], 'your_file'=>$img, 'filename' =>$filename, 'Content-Type' => 'image/jpeg', 'birth_date[]' => $_POST['birth_date'], 'birth_date[]' => $_POST['birth_month'], 'birth_date[]' => $_POST['birth_year'], 'your_email' => $_POST['your_email'], 'pass' => $_POST['pass'], 'act' => 'Update changes', 'your_name' => $_POST['your_name']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch , CURL_HTTPHEADER , "Content-Type: multipart/form-data" );
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_REFERER, "http://internalweb.com/");
curl_setopt($ch, CURLOPT_URL, "http://internalweb.com/profile");
$page = curl_exec($ch);

在结果上,当我运行我的脚本时,它可以更新这些变量,但没有图像运气…我很困惑...我应该做什么来放入变量?

我从谷歌学到了一切,现在我被困住了,因为我没有任何深度编程的知识,你能帮我做什么把图像放进$data数组吗?

我试图在以下线程上查看:multipart/form-data进入数组不处理multipart/form-data php curl将原始图像数据作为multipart/form-data在curl中发布

Content-Disposition: form-data; name="your_file"; filename="merc.jpg"
Content-Type: image/jpeg
$contentfile

共有1个答案

仲孙铭
2023-03-14

使用curl将文件上载到服务器时,需要在文件路径前指定@符号。例如,此图像文件:

$img = '/var/tmp/someimg.jpg';  // must be full path

那么在你的帖子数据中,应该是:

'your_file' => '@' . $img,

另外,从curl代码中删除以下标头。Curl将根据您的参数自动设置这个标头的长度。

curl_setopt($ch , CURL_HTTPHEADER , "Content-Type: multipart/form-data" );
 类似资料:
  • 我试图用C#代码在一个请求中上传image和json,但服务器总是返回400个错误的请求。使用fiddler执行相同的请求返回状态代码200。帮忙... 以下是我的小提琴手代码: ------WebKitFormBoundary7MA4YWXKTRZU0GW内容-配置:表单-数据;name=“application/json”content-type:application/json 反应总是一样

  • 描述 (Description) Framework7几乎没有什么有用的方法,这使得使用表单变得容易。 下表显示了Framework7中使用的表单数据方法 - S.No 方法和描述 1 表格到JSON 您可以使用formToJSON()方法将所有表单字段值转换为JSON。 2 来自JSON的表格 您可以使用formFromJSON方法根据JSON数据填充表单。

  • #include <stdio.h> int main(void) { int i = 0; char a[100]; for (i = 0; i < sizeof(a); i++) { a[i] = i; } return 0; } 技巧 "x"命令会把最后检查

  • 变量是计算机内存中已命名的存储位置,其中包含了数字或字符串等数据。变量包含的信息被称为变量的值。变量使用用户便于理解脚本操作的名称为用户提供了一种存储、检索和操作数据的途径。 声明和命名变量 命名和声明变量应遵循脚本语言的规则及指导。即使在使用变量前不需要去声明变量,也应养成在编程时声明变量的良好习惯,因为这样有助于防止错误发生。声明一个变量意味着告诉脚本引擎,有一个特定名称的变量,这样就可以在脚

  • 问题内容: 我在解析viewset中的 request.data 时遇到问题。我有一个可以根据产品添加多个图像的模型。 我想从传入数据中拆分 图像 ,将 产品数据 发送到ProductSerializer,然后将 图像 与 产品数据 发送到其序列化 器 并保存。 我有两个模型,就像这样: 我要发送到 产品 的请求(127.0.0.1:8000/products/)就像这样: 序列化器没有什么特别的

  • 问题内容: 我正在尝试使用伪装完成多部分文件上传,但似乎在任何地方都找不到很好的示例。我本质上希望HTTP请求类似于以下内容: 甚至… 我是否需要手动构建请求主体,包括生成多部分边界?考虑到此客户端可以执行的其他所有操作,这似乎有点过头了。 问题答案: 不,你没有。您只需要定义一种代理接口方法,将content-type指定为:multipart / form- data和其他信息,例如远程API