2016-12-28 174 views
0
發送的multipart/form-data的

我有以下的HTML表單:通過捲曲

<form enctype="multipart/form-data" id="upload_form" role="region" action="remoteUpload2.php?command=FileUpload&amp;type=Files&amp;currentFolder=%2F&amp;langCode=en&amp;hash=8e402b8b9927640d&amp;" method="POST" target="ckf_19"> 
<input name="upload" type="file"> 
<input value="Upload Selected File" type="submit"> 
<input name="cancel" value="Cancel" type="button"> 
</form> 

當我提交它,如果我做的print_r($ _ FILES)我得到以下的輸出:

Array 
(
    [upload] => Array 
     (
      [name] => logo.png 
      [type] => image/png 
      [tmp_name] => /tmp/phpvIFI0K 
      [error] => 0 
      [size] => 12201 
     ) 

) 

我想弄清楚的是,如何用相同的方式發送文件,只使用PHP,將兩個不同的系統連接在一起。我可以修改發送腳本,但不能修改接收腳本,所以我需要以預期的格式發送數據。

有沒有辦法使用cURL來發布數據到這個腳本,這將導致$ _FILES類似的輸出?我有我想要在服務器上發送的文件,我只需要弄清楚如何將它發佈到接收腳本。

+0

好像你要使用PHP的捲曲上傳文件..檢查[這](http://stackoverflow.com/questions/15200632/how-to-upload-file-using-curl-with-php)和[this](http://code.stephenmorley.org/php/sending-files-using-curl/)一次。 –

回答

0

我可以用下面的代碼來解決這個問題:

// initialise the curl request 
$request = curl_init('http://www.example.com/connector.php'); 

// send a file 
curl_setopt($request, CURLOPT_POST, true); 
curl_setopt($request, CURLOPT_SAFE_UPLOAD, false); 
curl_setopt(
    $request, 
    CURLOPT_POSTFIELDS, 
    array(
     'file' => '@' . realpath('logo.png') . ';filename=logo-test.png'. ';type=image/png' 
    )); 

// output the response 
curl_setopt($request, CURLOPT_RETURNTRANSFER, true); 

if(curl_exec($request) === false) 
{ 
    echo 'Curl error: ' . curl_error($ch)."<br>"; 
} 
else 
{ 
    echo 'Operation completed without any errors<br>'; 
} 

// close the session 
curl_close($request);