Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Curl无法在服务器上上载文件_Php_Curl_Yii_Hipchat - Fatal编程技术网

Php Curl无法在服务器上上载文件

Php Curl无法在服务器上上载文件,php,curl,yii,hipchat,Php,Curl,Yii,Hipchat,我正在尝试使用Api在服务器上上传一个文件。在本地主机上成功了。工作正常。我可以轻松地在服务器上上传文件。 但当我的代码在服务器上运行时,它就不会被上传。我会授予从中获取图像或文件的文件夹的读写权限。 这是我的curl代码: $c = curl_init(); curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); if($api_type =

我正在尝试使用Api在服务器上上传一个文件。在本地主机上成功了。工作正常。我可以轻松地在服务器上上传文件。 但当我的代码在服务器上运行时,它就不会被上传。我会授予从中获取图像或文件的文件夹的读写权限。 这是我的curl代码:

 $c = curl_init();
        curl_setopt($c, CURLOPT_URL, $url);
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
        if($api_type == 2){
            //$mm = array("message" => $message);

            $message = str_replace("\n", "\\n", $message);
            $message = '{"message":"'.$message.'"}';

            curl_setopt($c, CURLOPT_HTTPHEADER, array(
             'Content-Type: application/json',
            ));
            curl_setopt($c, CURLOPT_POST, 1);
            curl_setopt($c, CURLOPT_POSTFIELDS,$message);
        }
        if($api_type == 3 & $attachment != NULL){
            $data = array( 'file' => '@'.self::basePath().'/../user_uploads/hipchat_image/'.$attachment);
            curl_setopt($c, CURLOPT_HTTPHEADER, array(
            'Content-Type: multipart/related',
            ));
            curl_setopt($c, CURLOPT_POST, 1);
            curl_setopt($c, CURLOPT_POSTFIELDS,$data);
        }
        return curl_exec($c); 
你可以试试

curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
根据PHP版本的不同,PHP5.5中的默认值为
false
,PHP5.6+中的默认值为
true
。。。因此,请检查PHP的本地和Web服务器版本

请参阅:

您可以尝试

curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
根据PHP版本的不同,PHP5.5中的默认值为
false
,PHP5.6+中的默认值为
true
。。。因此,请检查PHP的本地和Web服务器版本


请参阅:

PHP7删除此选项
curl\u setopt($ch,CURLOPT\u SAFE\u UPLOAD,false)
上传文件时必须使用
CURLFile
界面

您可以这样编写代码

$data = array('file'=>new CURLFile('/file/path'));

请参见PHP7删除此选项
curl\u setopt($ch,CURLOPT\u SAFE\u UPLOAD,false)
上传文件时必须使用
CURLFile
界面

您可以这样编写代码

$data = array('file'=>new CURLFile('/file/path'));

好吧,哇,这花了好长时间才找到。我必须更新一个遗留系统,而不是PHP7,这就是破坏脚本的原因。谢谢好吧,哇,这花了好长时间才找到。我必须更新一个遗留系统,而不是PHP7,这就是破坏脚本的原因。非常感谢。