php curl文件上传,在 php 中通过 CURL 上传文件
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
print_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: 文檔類型
文件內容
這樣的格式
以下是服務器端代碼
curl_upload_server.php
print_r($_FILES); //檢查上傳信息
echo "文件內容:\n";
$p = current($_FILES);
readfile($p['tmp_name']); //輸出上傳的文件
TEXT;
$varname = 'my';
$name = '3.txt';
$type = 'text/plain';
$key = "$varname\"; filename=\"$name\r\nContent-Type: $type\r\n";
$fields[$key] = $contents;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://localhost/curl_upload_server.php");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$s = curl_exec ($ch);
curl_close ($ch);
echo $s;
本文講解了在 php 中通過 CURL 上傳文件相關內容請關注php中文網。
相關推薦:
總結
以上是生活随笔為你收集整理的php curl文件上传,在 php 中通过 CURL 上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dto转化 vo_VO(DTO)与PO(
- 下一篇: php对视频分割,如何把一个视频无损分割