好久沒寫 PHP 了,連自己工作的機器上都忘了安裝 orz 這半年一直都在寫 python 啊,這次使用 PHP 來模擬短時間的大量連線。

在 Ubuntu 的安裝:

$ sudo apt-get install php5-cli php5-curl

之前只有透過 curl 使用 POST 送出 text 類的資料,這次想要模擬檔案上傳,一開始使用:

$POST_DATA = array( 'my_file' => file_get_contents( '/path/my_file' ) );

但還是送不出去,最後才發現要用:

$POST_DATA = array( 'my_file' => '@/path/my_file' );

大概是這樣才會被轉換使用 multipart/form-data 的方式,完整範例:

<?php

        $url = 'http://host/upload';

        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_URL, $url );
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
        curl_setopt( $ch, CURLOPT_POST, true );
        curl_setopt( $ch, CURLOPT_POSTFIELDS, 
array(
               //'my_file' => file_get_contents( '/path/my_file_data' ) 
               'my_file' => '@/path/my_file_data' 
)
);  
        echo curl_exec( $ch );
        curl_close( $ch );
?>


changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()