php使用curl模擬瀏覽器表單上傳文件或者圖片的方法

這篇文章主要介紹了php使用curl模擬瀏覽器表單上傳文件或者圖片的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

在瀏覽器使用html中的input框我們可以實現文件的上傳,表單元素選用 <input type="file"> 控件,form 表單需要設置 enctype="multipart/form-data" 屬性。比如:

<body>

  <form action="UploadFile.php" method="post" enctype="multipart/form-data">

  <input type="file" name="fileUpload" />

  <input type="submit" value="上傳文件" />

  </form>

</body>

總有一些時候,我們需要在後臺直接上傳文件而不是用瀏覽器進行前端上傳,這時候php的curl就提供了一些參數可以實現直接通過php後臺上傳文件。

php使用curl模擬上傳文件

curl上傳文件的時候,最重要的是一個“ @”符號的應用,加@符號curl就會把它當成是文件上傳處理。
具體代碼實例:

<?php
  header('Content-type:text/html; charset=utf-8'); //聲明編碼
  $ch = curl_init();
  $url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459';
  
  //post數據,使用@符號,curl就會認爲是有文件上傳
  $curlPost = array('Filedata'=>'@/Users/finup/Documents/11.png');
  
  
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1); //POST提交
  curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
  $data =curl_exec($ch);
  curl_close($ch);
  echo '<pre>';
  var_dump($data);

上述代碼實例中的url是處理文件上傳的具體的接口,可以直接使用$_FILES來獲取上傳的臨時文件相關信息,打印出$_FILES如下,其中數組的鍵“Filedata”名可以在傳遞參數的時候自己指定:

Array
(
[Filedata] => Array
(
[name] => 11.png
[type] => application/octet-stream
[tmp_name] => /private/var/tmp/php936cex
[error] => 0
[size] => 36663
)
)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章