在 php 中通過 CURL 上傳檔案

來源:互聯網
上載者:User

1、使用 CURL 預設的方法

$file = realpath('gif/1.gif'); //要上傳的檔案  $fields['f'] = '@'.$file;    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL,"http://localhost/ajax_server.php?id=1");    curl_setopt($ch, CURLOPT_POST, 1 );  curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);    curl_exec ($ch);    curl_close ($ch);   

2、另類的做法,有時我們需要將動態產生的內容當做檔案上傳到遠程伺服器,卻又不想在本機伺服器中構建臨時檔案。這樣就有了這個另類的寫法

$contents =<<< 'TEXT'資料報中應該是Content-Disposition: form-data; name="userfile"; filename="file_name"Content-Type: 文件類型檔案內容這樣的格式,我只實現了檔案名稱部分,文件類型不知道如何?。這樣上傳後就取不到 type 的值curl_upload_server.php<xmp><?phpprint_r($_FILES);echo "檔案內容:\n";$p = current($_FILES);readfile($p['tmp_name']);TEXT;$fields['f"; filename="x.x'] = $contents; //這個關聯鍵的寫法很怪異吧?$ch = curl_init();  curl_setopt($ch, CURLOPT_URL,"http://localhost/curl_upload_server.php");  curl_setopt($ch, CURLOPT_POST, 1 );curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$s = curl_exec ($ch);  curl_close ($ch);  echo $s;

很有趣吧

嗯,解決了

$contents =<<< 'TEXT'資料報中應該是Content-Disposition: form-data; name="userfile"; filename="file_name"Content-Type: 文件類型檔案內容這樣的格式,我只實現了檔案名稱部分,文件類型不知道如何?。這樣上傳後就取不到 type 的值curl_upload_server.php<xmp><?phpprint_r($_FILES);echo "檔案內容:\n";$p = current($_FILES);readfile($p['tmp_name']);TEXT;$fields['f"; filename="x.x'] = $contents; //這個關聯鍵的寫法很怪異吧?$ch = curl_init();  curl_setopt($ch, CURLOPT_URL,"http://localhost/curl_upload_server.php");  curl_setopt($ch, CURLOPT_POST, 1 );curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$s = curl_exec ($ch);  curl_close ($ch);  echo $s;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.