iT邦幫忙

0

如何透過 curl 丟圖片到遠端伺服器?

 if (!function_exists('curl_file_create')) {
     function curl_file_create($filename, $mimetype = '', $postname = '') {
         return "@$filename;filename="
             . ($postname ?: basename($filename))
             . ($mimetype ? ";type=$mimetype" : '');
     }
 }

$ch = curl_init();
$filename = basename($_FILES['myFile_cover']['name']);
$minetype = $_FILES['myFile_cover']['type'];
$curl_file = curl_file_create($filename,$minetype);
$postData = array(
  "profile-picture" => $curl_file
);

curl_setopt($ch, CURLOPT_URL,$api_edit_avatar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));

$res = curl_exec($ch);
$error_no = curl_errno($ch);
$info = curl_getinfo($ch);

$err_msg = '';
if ($error_no) {
    $err_msg = curl_error($ch);
    echo $err_msg;
} else {
    print_r($res);
    dump($info);
}
curl_close($ch);

這是我找到其中一個方式
但卻還是行不通
甚至還報錯: couldn't open file 'xxxxxxx.jpg'
我的php版本是7 不知道跟這個有沒有關係
要如何透過curl丟圖片到遠端?!

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2018-05-31 09:02:26 檢舉
開啟檔案就有問題了...這並不是「透過curl丟圖片」的問題
那個~~~~你的檔案來源位置在哪?也沒給curl檔案內容,也沒指定來源。只丟個檔名過去??
這它傳的過去就有鬼了。
小松 Nana iT邦研究生 3 級 ‧ 2018-05-31 17:44:52 檢舉
要怎麼抓到預設的檔案位置?因為每個用戶放的位置好像都不同?
kevin9988 iT邦新手 5 級 ‧ 2018-05-31 22:25:51 檢舉
你是想把用戶上傳的檔案直接丟到遠端伺服器吧?
建議你還是先學會如何處理上傳後的檔案
還有相對和絕對路徑的處理
以上的問題解開了,答案就不遠了
要看一下 apache or nginx 你的服務器的 log , 它會告訴你有何錯誤 , 我犯過那 selinux 的錯誤

尚未有邦友回答

立即登入回答