ホームページ >バックエンド開発 >PHPチュートリアル >php curl 批量上传,并且带post 其它表单,多文件上传为什么不能再传其它post

php curl 批量上传,并且带post 其它表单,多文件上传为什么不能再传其它post

WBOY
WBOYオリジナル
2016-06-06 20:07:121548ブラウズ

php curl 批量上传,并且带 post 其它表单, 单个上传是可以跟 post 一起,可以批量的话就不行,有什么办法吗?

<code><?php //显示所有错误,除了注意的提示
error_reporting(E_ALL & ~E_NOTICE);    
$ch = curl_init();

$file_path='D:\1.jpg';

if(class_exists('\CURLFile')){
    $file[] = new \CURLFile(realpath($file_path));
    $file[] = new \CURLFile(realpath($file_path));
}else{
    $file[] = '@' . realpath($file_path);
    $file[] = '@' . realpath($file_path);
}

$data = array('name' => 'Foo', 'file'=>$file); //多文件上传为什么不能再传其它post

//变成
//$data = $file;


curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);


if (class_exists('\CURLFile')) {
     curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
} else {
    if (defined('CURLOPT_SAFE_UPLOAD')) {
        curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);// 5.6 给改成 true了, 弄回去 
    }
}
 
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

curl_exec($ch);

//关闭cURL资源,并且释放系统资源
curl_close($ch);

?> </code>

最后运行的结果如何能象表单那样,又有 $_FILES 又有 $_POST 呢?

单文件是可以的,可是多文件就是不行,怎么办?

回复内容:

php curl 批量上传,并且带 post 其它表单, 单个上传是可以跟 post 一起,可以批量的话就不行,有什么办法吗?

<code><?php //显示所有错误,除了注意的提示
error_reporting(E_ALL & ~E_NOTICE);    
$ch = curl_init();

$file_path='D:\1.jpg';

if(class_exists('\CURLFile')){
    $file[] = new \CURLFile(realpath($file_path));
    $file[] = new \CURLFile(realpath($file_path));
}else{
    $file[] = '@' . realpath($file_path);
    $file[] = '@' . realpath($file_path);
}

$data = array('name' => 'Foo', 'file'=>$file); //多文件上传为什么不能再传其它post

//变成
//$data = $file;


curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);


if (class_exists('\CURLFile')) {
     curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
} else {
    if (defined('CURLOPT_SAFE_UPLOAD')) {
        curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);// 5.6 给改成 true了, 弄回去 
    }
}
 
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

curl_exec($ch);

//关闭cURL资源,并且释放系统资源
curl_close($ch);

?> </code>

最后运行的结果如何能象表单那样,又有 $_FILES 又有 $_POST 呢?

单文件是可以的,可是多文件就是不行,怎么办?

我记得是必须给个文件名吧。不能传递数组过去。只能指定key。

<code>$postfileds = [
    'file1' => CURLFile(xxxxx
    'file2' => CURLFile(xxxxxxx
    # 一定要用数组那也一定要这么写
    'file[]' => CURLFile(xxxxxx
    'file[]' => CURLFile(xxxxx
];</code>

把file_path设置成一个数组 循环执行

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。