欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHPCURL递归实现 上传文件

程序员文章站 2022-03-21 14:13:27
...
感兴趣可以先看上一篇文章,然后这两个是关联的。不同的图片,对应不同的typeID,

/*
* time:2016年12月2日17:21:37
* 功能:根据文本里面的roomID和文件夹下面的文件匹配上传到服务器
* 主要参数说明:$file_qqq 图片文件路径
* $r roomID,得到一个数组循环一次出队获得该参数
* $type 上传类型,根据图片名字得到
*author:zhangchenyang
*/
ini_set('max_execution_time', '0'); //设置超时时间
header('content-type:text/html;charset=utf8');


$act = $_GET['pass'];
if ($act == 'zhangchenyang') {
/**
*time:2016年12月2日16:09:33
* 注意:1:图片路径是否正确
* 2:房间id是否对应
*
*/
$file = './room400.txt'; //上传的roomID文件
$content = file_get_contents($file);
//echo $content;

$array = explode("\r\n", $content); //转成数组
//地柜列出所有文件
function tree($directory)

{
global $array;
$mydir = dir($directory);

echo "
    \n";

    while ($file = $mydir->read()) {

    if ((is_dir("$directory/$file")) AND ($file != ".") AND ($file != "..")) {
    $arr = array_shift($array);

    echo "
  • $file
  • \n";

    tree("$directory/$file");

    } else


    global $arr;
    if (is_dir('$file')) {

    } else {


    if ($file !== '.' & $file !== ".." & $file != '') {
    $img_name = mb_substr($file, 0, 1, 'utf-8');
    if (is_numeric($img_name)) {
    echo "
  • $file,$img_name
  • \n";
    $file_qqq = "$directory/$file";
    var_dump($file_qqq);
    //构建接口的参数
    $r = $arr;
    $t = $img_name;

    $return_data = up($file_qqq, $r, $t); //1:图片的路径 2:房间ID 3:传递类型
    if ($return_data == '200') {
    //上传成功
    $ok_info = $file_qqq . '-文件名字-' . $file . '-房间ID--' . $r; //文件的路径
    file_put_contents('ok400.txt', $ok_info, FILE_APPEND);

    } else {
    $err_info = $file_qqq . '-文件名字-' . $file . '-房间ID--' . $r; //文件的路径
    file_put_contents('error400.txt', $err_info, FILE_APPEND);


    }


    }

    }
    }


    }

    echo "
\n";

$mydir->close();

}


echo "

目录为粉红色


\n";

tree("./img400");
function up($file_qqq, $r, $type)
{

$u = '1';
$t = '1';


$ch = curl_init();
$source = $file_qqq;
$source = realpath($source);
//加@符号curl就会把它当成是文件上传处理
$data = array('img' => '@' . $source);
//$url='http://localhost/update_admin.php?u=%s&t=%s&r=%s&type=%s'; /测试接口
$url = 'http://localhost/room/update_admin.php?u=%s&t=%s&r=%s&type=%s';
$url = sprintf($url, $u, $t, $r, $type);
//var_dump($url);
$cfile = curl_file_create($source, 'image/jpeg', '1.jpg');

// 设置 POST 数据
$data = array('uploadedfile' => $cfile);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
//var_dump($data);
$error = curl_error($ch);
$b = curl_multi_getcontent($ch);
curl_close($ch);


return json_decode($result);

}


} else {

echo "";
}