0

PHP 経由でファイルを confluence (バージョン 5.9.10) に添付する作業を行っています。

これが私のコードです

$ch=curl_init();
$headers = array(
    'X-Atlassian-Token: no-check'
);
$data = array('file' => '@test.txt');
curl_setopt_array(
    $ch,
    array(
        CURLOPT_URL=>'https://<path_to_confluence>/rest/api/content/<page_id>/child/attachment',
        CURLOPT_POST=>true,
        CURLOPT_VERBOSE=>1,
        CURLOPT_POSTFIELDS=>$data,
        CURLOPT_SSL_VERIFYHOST=> 0,
        CURLOPT_SSL_VERIFYPEER=> 0,
        CURLOPT_RETURNTRANSFER=>true,
        CURLOPT_HEADER=>false,
        CURLOPT_HTTPHEADER=> $headers,
        CURLOPT_USERPWD=>C_USERNAME.":".C_PASSWORD
    )
);
$result=curl_exec($ch);
$ch_error = curl_error($ch);
if ($ch_error) {
    echo "cURL Error: $ch_error";
} else {
    var_dump($result);
}
curl_close($ch);

しかし、スクリプトを実行した後、次のエラーが発生しました: >

HTTP/1.1 500 内部サーバー エラー
サーバー: nginx/1.5.12
日付: 2016 年 11 月 3 日木曜日 10:12:44 GMT
コンテンツ タイプ: アプリケーション/json
転送エンコーディング: チャンク
接続: キープアライブ
X-ASEN: SEN- 2160053
セット Cookie: JSESSIONID=EE3116DFC552C7D4571608BFCF410559; パス=/; HttpOnly
X-Seraph-LoginReason: OK
X-AUSERNAME: user
Cache-Control: no-cache, must- revalidate
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Content-Type-Options: 終了前の nosniff
HTTP エラー送信の終了、送信を停止します
Closing connection 0 string(93) "statusCode":500,"message":"java.lang.IllegalArgumentException:File name must not be null"

私が間違っていることは何ですか?私は何を逃したのですか?

4

2 に答える 2

0

これを試して:

$data = array('file' => '@' . realpath('test.txt'));
...
CURLOPT_POSTFIELDS=>$data

ファイル名が必要な場合は、代わりにこれを試すことができます。

$data = array('file' => '@' . realpath('test.txt') . ';filename=test.txt'));
...
CURLOPT_POSTFIELDS=>$data
于 2016-11-08T11:21:16.557 に答える