Heim > Backend-Entwicklung > PHP-Tutorial > 使用curl 提交表单(多维数组+文件)数据到服务器的有关问题

使用curl 提交表单(多维数组+文件)数据到服务器的有关问题

WBOY
Freigeben: 2016-06-13 12:33:09
Original
856 Leute haben es durchsucht

使用curl 提交表单(多维数组+文件)数据到服务器的问题
我在本地搭了一个测试服务器,Apache+PHP,想使用curl自动提交表单数据到远程服务器。

远程服务器表单有两项数据需要提交:
1、input file: 要求传图片
2、checkbox: 会有多个按钮被选中

问题:
运行时下面程序时checkbox数组会被转成字符串,程序报错如下:
Array to string conversion 

主要代码如下:

    $post_url = "http://domain.com/post.php";<br />
    $post_data = array(<br />
        'color' => array('red', 'green', 'blue'),<br />
        'img' => "@d:\image.jpg"<br />
    );<br />
<br />
    $ch = curl_init();<br />
    curl_setopt($ch, CURLOPT_URL, $post_url);<br />
    curl_setopt($ch, CURLOPT_POST, true);  <br />
    curl_setopt($ch, CURLOPT_POSTFIELDS, ($post_data));<br />
    if (false === curl_exec($ch)) {<br />
        echo "Curl_error: " . curl_error($ch);<br />
    }<br />
    curl_close($ch);
Nach dem Login kopieren


尝试过:
1、如果用http_build_query处理$post_data,那么color数组就可以正确的传到服务器,但是文件也会被当成一般query参数,从而上传失败。
2、如果不使用http_build_query,文件可以正确上传,但是在服务器抓到color数组的值就是"Array",并提示"Array to string conversion"错误。
3、我在php.net上看curl手册,发现有个家伙跟我的情况有点类似,但是他使用的是关联数组,所以可以绕弯,类似
$post_data = array("method" => $_POST["method"],<br />
                    "mode" => $_POST["mode"],<br />
                    "product[name]" => $_POST["product"], <br />
                    "product[cost]" => $_POST["product"]["cost"], <br />
                    "product[thumbnail]" => "@{$_FILES["thumbnail"]["tmp_name"]}");
Nach dem Login kopieren

即可解决,可是我的情况是索引数组,模仿他的样子写了之后仍然无效。


请教各位朋友是否知道如何解决?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage