下記のコードを書きましたがファイルアップロードされませんでした。
どなたか教えていただけますでしょうか
<?php
// APIトークン
define( ‘API_TOKEN’, ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAA’ );
// アプリID
define( ‘APP_NO’, ‘123’ );
// サブドメイン
define( ‘SUB_DOMAIN’, ‘fffffffffffff’ );
//file Upload
if ( isset( $_FILES[‘up_file1’] ) && isset( $_FILES[‘up_file2’] ) ) {
$files = array($_FILES[‘up_file1’],$_FILES[‘up_file2’]);
$file_desc = reArrayFiles( $files );
$record_num = $_POST[‘record_number’];
file_upload( $file_desc, $record_num );
}
function reArrayFiles( $files ) {
$file_ary = array();
$file_count = count( $files[‘name’] );
$file_key = array_keys( $files );
for ( $i = 0; $i < $file_count; $i++ ) {
foreach ( $file_key as $val ) {
$file_ary[$i][$val] = $files[$val][$i];
}
}
return $file_ary;
}
$record_num = $_POST[‘record_number’];
$kintones = get_kintone_data( $record_num ); //kintoneのレコード取得
for ( $i = 0; $i < count( $kintones[‘records’] ); $i++ ) {
$date_time = $kintones[‘records’][$i][‘日時’][‘value’];
}
//include for CSS and Javascript files
add_action( ‘wp_enqueue_scripts’, ‘kintone_enqueue_styles’ );
function kintone_enqueue_styles() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/kintone/css/kintone-style.css’ );
}
add_action( ‘wp_enqueue_scripts’, ‘kintone_enqueue_script’ );
function kintone_enqueue_script() {
wp_enqueue_script( ‘file-upload’, get_template_directory_uri() . ‘/kintone/js/file-upload.js’, array( ‘jquery’ ), ‘1.0.0’, true );
wp_enqueue_script( ‘jquery.uploadThumbs’, get_template_directory_uri() . ‘/kintone/js/jquery.uploadThumbs.js’, array( ‘jquery’ ), ‘1.0.0’, true );
}
//*****************************************
// アプリデータ取得
//*****************************************/
function get_kintone_data( $record_num ) {
$url = “https://” . SUB_DOMAIN . “.cybozu.com/k/v1/records.json?app=” . APP_NO . “”;
$search = “レコード番号 = "{$record_num}"”;
$url .= ‘&query=’ . utf8_uri_encode( $search );
$args = array(
‘headers’ => array(
‘X-Cybozu-API-Token’ => API_TOKEN
)
);
$kintone = wp_remote_get( $url, $args );
$kintones = json_decode( $kintone[‘body’], true );
return $kintones;
}
//*****************************************
// ファイルアップロード
//*****************************************/
function file_upload( $files, $record_num ) {
for ( $f = 0; $f < count( $files ); $f++ ) {
$upload_url = “https://” . SUB_DOMAIN . “.cybozu.com/k/v1/file.json”;
$file_path = $files[$f][‘tmp_name’];
$file_name = $files[$f][‘name’];
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $upload_url );
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, “POST” );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, [‘X-Cybozu-API-Token:’ . API_TOKEN] );
curl_setopt( $curl, CURLOPT_POST, true );
$file = new CURLFile( $file_path, ‘application/octet-stream’, $file_name );
curl_setopt( $curl, CURLOPT_POSTFIELDS, array( ‘file’ => $file ) );
$res = curl_exec( $curl );
$response[] = json_decode( $res, true ); // thêm phần tử mới vào mảng response
curl_close( $curl );
// Lưu trữ tất cả các file_key được trả về trong một mảng
$fileKeys = array();
for ( $i = 0; $i < count( $response ); $i++ ) {
$fileKeys[] = $response[$i][‘fileKey’];
}
// Lấy giá trị của key1 và key2 từ mảng nếu có
if ( count( $fileKeys ) >= 2 ) {
$key1 = $fileKeys[0];
$key2 = $fileKeys[1];
}
//アプリデータ取得
$url = “https://” . SUB_DOMAIN . “.cybozu.com/k/v1/records.json?app=” . APP_NO . “”;
$search = “レコード番号 = "{$record_num}"”;
$url .= ‘&query=’ . utf8_uri_encode( $search );
$args = array(
‘headers’ => array(
‘X-Cybozu-API-Token’ => API_TOKEN
)
);
$kintone = wp_remote_get( $url, $args );
$kintones = json_decode( $kintone[‘body’], true );
//添付ファイル
$fields = array( ‘file_1’, ‘file_2’ );
$subtable1 = $kintones[‘records’][0][$fields[ 0] ][‘value’];
$subtable2 = $kintones[‘records’][0][$fields[ 1] ][‘value’];
//keyを"fileKey" => $keyの形で配列に入れる
//if ( $key1 ) {
// $key_array = array( array( “fileKey” => $key ) );
//} else {
// $key_array = “”;
//}
//取得した添付ファイルデータにアップロードするkeyを追加
$result_key1 = array_merge( $subtable1, [$key1] );
$result_key2 = array_merge( $subtable2, [$key2] );
//bodyにアプリ番号とレコード番号とkeyをセット
$body = array(
“app” => APP_NO,
“id” => $record_num,
“record” => array(
$fields[0] => array(
“value” => $result_key1
),
$fields[1] => array(
“value” => $result_key2
),
),
);
//レコードの上書きなのでPUTで書き込みます。
$options = array(
‘method’ => ‘PUT’,
‘headers’ => array(
‘X-Cybozu-API-Token’ => API_TOKEN,
‘Content-Type’ => ‘application/json’
),
‘body’ => json_encode( $body )
);
//PUTで書き込むのでwp_remote_requestを使います。
$results = wp_remote_request( “https://” . SUB_DOMAIN . “.cybozu.com/k/v1/record.json”, $options );
//書き込み成功だったらrevisionが返ってきます。
print_r( $results[‘body’] );
echo $key1;
echo $key2;
}
}
?>
<form method=“post” action=“” enctype=“multipart/form-data”>
<label for=“file”>ファイル1を選択してください。</label>
<input type=“file” name=“up_file1[]” multiple=“multiple” >
<br>
<label for=“file”>ファイル2を選択してください。</label>
<input type=“file” name=“up_file2[]” multiple=“multiple” >
<br>
<label for=“record_number”>レコード番号を入力してください。</label>
<input type=“text” name=“record_number” id=“record_number”>
<br>
<input type=“submit” id=“upload” value=“アップロード”>
</form>