php5.6关于curl以@方式上传文件的变化及解决七牛上传时报file is not specified in multipart的问题

来源:互联网 发布:手机号正则表达式js 编辑:程序博客网 时间:2024/06/05 19:09
[php] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1.         $ch = curl_init ();  
  2.         $fields = $params;  
  3.         $fields ['file'] = '@' . $file;  
  4.         curl_setopt ( $ch, CURLOPT_URL, $url );  
  5.         curl_setopt ( $ch, CURLOPT_POST, 1 );  
  6.         curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );  
  7.         curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );  
  8.         $response = curl_exec ( $ch );  

在php5.6之前的版本上以上面的代码上传文件是没有问题的,但从php5.6.0开始,需要加上curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);这行代码方可上传,否则取不到文件。

最终的代码:

[plain] view plain copy
print?在CODE上查看代码片派生到我的代码片
  1.         $ch = curl_init ();  
  2.         curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);  
  3.         $fields = $params;  
  4.         $fields ['file'] = '@' . $file;  
  5.         curl_setopt ( $ch, CURLOPT_URL, $url );  
  6.         curl_setopt ( $ch, CURLOPT_POST, 1 );  
  7.         curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );  
  8.         curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );  
  9.         $response = curl_exec ( $ch );  
注意:curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);这行代码必须放在下面这行代码之前<pre name="code" class="plain">curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );否则上传到七牛时会报file is not specified in multipart的错误。


PHP官网上也有此介绍http://cn2.php.NET/manual/en/function.curl-setopt.php






0 0
原创粉丝点击