2

php curlフォームを使用してファイルをアップロードしようとしていますasp.net。ファイル名の前に を使用して配列を送信して@いますが、ファイルが asp.net サーバーに認識されません。curl コードを記述する特定の方法はありますか?

コードは次のとおりです。

$postArr = array(
    'uplTheFile' => '@'. dirname(__FILE__) .'/abc.xls';
    'imgUploadFile_x' => '78',
    'imgUploadFile_y' => '19',
);

$param = array(
    'url'=> SITEURL,
    'method'=>"FILE",
    'parameter'=>$postArr
);

echo $result = curlOperation($param);

function curlOperation($param) {
    $headers=array();
    $headerVar=0;
    $headers[0]='Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    $headerVar++;
    $headers[$headerVar]='Accept-Language: en-us,en;q=0.5';
    $headerVar++;
    $headers[$headerVar]='Accept-Encoding: gzip, deflate';
    $headerVar++;
    $headers[$headerVar]='Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
    $headerVar++;
    $curl_connection =curl_init($param['url']);
    if($param['method']=="POST") {
        $headers[$headerVar]='Content-Type: application/x-www-form-urlencoded; charset=utf-8';
    } elseif($param['method']=="FILE") {
    $headers[$headerVar]='Content-Type:  multipart/form-data;';
    }
    curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0;  Windows NT 5.1)");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_connection, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl_connection, CURLINFO_HEADER_OUT, true);
    curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
    if($param['method']=="POST" || $param['method']=="FILE" ) {
        curl_setopt($curl_connection, CURLOPT_POST, 1);
    curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $param['parameter']);
    }
    $result = curl_exec($curl_connection);
    curl_close($curl_connection);
    return $result ;
}
4

0 に答える 0