PHPCURL递归实现 上传文件

浏览:2205 发布日期:2016/12/02 分类:业务逻辑 关键字: php 递归 postcurl上传文件
感兴趣可以先看上一篇文章,然后这两个是关联的。不同的图片,对应不同的typeID,
<?php

/*
 * 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 "<ul>\n";

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

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

                echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\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 "<li>$file,$img_name</li>\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 "</ul>\n";

        $mydir->close();

    }


    echo "<h2>目录为粉红色</h2><br>\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 "<script>alert('你的口令有误请重试')</script>";
}
评论( 相关
后面还有条评论,点击查看>>