dsnw2651 2016-03-14 08:39
浏览 39

php 5.6.16 -Curl文件上传请求

Currently I am using Php 5.2 version. Below code is working fine on older version

$ch = curl_init();
            if(isset($file['image']) || isset($file['image1']))
            {   

                if(isset($file['image']) && $file['image']['error'] == 0)
                {
                $filename = $file['image']['name'];
                $filedata = $file['image']['tmp_name'];
                $filesize = $file['image']['size'];
                }
                elseif(isset($file['image1']) && $file['image1']['error'] == 0)
                { 
                    $filename = $file['image1']['name'];
                    $filedata = $file['image1']['tmp_name'];
                    $filesize = $file['image1']['size'];                    
                }
                else
                {
                    if(isset($post['nonJSAddProduct']) && $post['nonJSAddProduct'] == 'Y'){
                        return "not uploaded";
                    }else{
                        echo "not uploaded";die;
                    }
                }
            }
            if(isset($post['filenme_final']) && $post['filenme_final'] !='')
                $post['imagename']=$post['filenme_final'];
            else
            $post['imagename']=$filename;

            $post['image']="@$filedata";
            $headers = array("Content-Type:multipart/form-data");
                if ($_SERVER["HTTP_X_FORWARDED_SERVER"] == 'dev-m.indiamart.com' )
                {  
                     curl_setopt($ch, CURLOPT_URL, 'http://dev-mapi.indiamart.com/wservce/products/uploadimage/');
                }

                if ($_SERVER["HTTP_X_FORWARDED_SERVER"] == 'dev-m.indiamart.com' || $_SERVER["HTTP_X_FORWARDED_SERVER"] == 'stg-m.indiamart.com')
                curl_setopt($ch, CURLOPT_USERPWD, "admin:admin");                
                $options = array(
                    //CURLOPT_HEADER => true,//if we remove it then it not prints extra data like 200 ok
                    CURLOPT_POST => 1,
                    CURLOPT_HTTPHEADER => $headers,
                    CURLOPT_POSTFIELDS => $post,
                    CURLOPT_INFILESIZE => $filesize,
                    CURLOPT_RETURNTRANSFER => true
                ); // cURL options
                curl_setopt_array($ch, $options);
                $response = curl_exec($ch);  
                curl_close($ch);

                  $dataProvider = (array) json_decode($response, true);
                  return $dataProvider;

Now We are migrating to php 5.6.16 but when I am running the same code on new version i.e. 5.6.16 ,On api end when I am printing $_FILES array, I am getting blank .

Please help,where is the error in this code

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 易康econgnition精度验证
    • ¥15 线程问题判断多次进入
    • ¥15 msix packaging tool打包问题
    • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
    • ¥15 python的qt5界面
    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致