日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

PHP5.6通过CURL上传图片@符无效的兼容问题

發(fā)布時(shí)間:2025/3/21 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP5.6通过CURL上传图片@符无效的兼容问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天本來(lái)想試試一個(gè)圖片云的API,于是本地做了個(gè)上傳圖片的測(cè)試,結(jié)果灰常郁悶的發(fā)現(xiàn)以前一直用的好好的CURL上傳圖片居然死活不起作用,本來(lái)幾分鐘搞定的事情,結(jié)果折騰了大半天才終于找到原因,居然是兼容性問(wèn)題,真是無(wú)語(yǔ)。。

網(wǎng)上搜索PHP通過(guò)CURL上傳圖片幾乎都是類(lèi)似下面的代碼:?

以前上傳圖片都是在圖片路徑前面增加一個(gè) @符號(hào),如:

$file = __DIR__ .'/0634134726bc5b8b.jpg'; $data = array('mypic'=>'@'. $file);
  • 1
  • 2

這樣就行了,但現(xiàn)在這種情況一般只適用于 PHP5.6以下的版本。?
對(duì)5.6來(lái)說(shuō),直接加@是木有用的啦。

解決辦法有兩個(gè):一種是兼容;二是使用新的方法。

1 . 兼容方法:?
主要用到 CURL 的一個(gè)配置參數(shù) CURLOPT_SAFE_UPLOAD?
CURLOPT_SAFE_UPLOAD 在 PHP5.5中默認(rèn)值是 false?
而在 PHP5.6中已經(jīng)默認(rèn)為 true 了。?
所以只需要增加一行強(qiáng)制設(shè)置為 false 就行,如下:?
注意:該參數(shù)的設(shè)置順序,必須在設(shè)置 CURLOPT_POSTFIELDS 參數(shù)之前才有效哦!!!

<?php $url = 'http://127.0.0.1/test3.php'; $file = __DIR__ .'/0634134726bc5b8b.jpg'; $data = array('mypic'=>'@'. $file); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $content = curl_exec($curl); curl_close($curl); print_r($content);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2 . 新的圖片上傳方法:?
使用 CURLFile 類(lèi)來(lái)處理文件,如下:

$url = 'http://127.0.0.1/test3.php'; $file = __DIR__ .'/0634134726bc5b8b.jpg'; $data = array('mypic'=>new CURLFile($file)); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $content = curl_exec($curl); curl_close($curl); print_r($content);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

我這里只是最簡(jiǎn)單的應(yīng)用,具體可參考下面官方文檔:?
http://php.net/manual/en/class.curlfile.php

這下終于上傳成功了。。。太坑爹了,一天時(shí)間又被折騰完了。

轉(zhuǎn)載于:https://www.cnblogs.com/xiaoleiel/p/8333971.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的PHP5.6通过CURL上传图片@符无效的兼容问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。