お世話になっております。
Google API EngineでPHPを動作させ、外部のJSONをCSV形式でGoogle Cloud StorageにUPLOADしたいのですが、upload関数を使用しても保存されないため、解決方法を模索しております。
下記ソースを起動すると、JSONの取得結果を","区切りで画面に表示されるのみで、GCSへのUPLOAD部分の処理が動かず、エラーも発生しません。
php
1<?php 2require '../vendor/autoload.php'; 3use Google\Cloud\Storage\StorageClient; 4use google\appengine\api\app_identity\AppIdentityService; 5header('Content-Type: text/html; charset=UTF-8'); 6$projectId = AppIdentityService::getApplicationId(); 7$bucketName = '【バケット名】'; 8$storage = new StorageClient([ 9 'projectId' => $projectId, 10]); 11$url = '【JSONを取得するURL】'; 12$json = file_get_contents($url); 13$arr = json_decode($json,TRUE); 14 15$csv = []; 16 17if ($arr === NULL) { 18 return; 19}else{ 20 foreach($arr["data"] as $value){ 21 $csv[] = [$arr1,$arr2,$arr3]; 22 } 23 24 $file = fopen(export($csv), 'r'); 25 $bucket = $storage->bucket($bucketName); 26 $object = $bucket->upload($file, [ 27 'name' => 'test.csv' 28 ]); 29 30} 31 32function export($data) 33{ 34 $stream = fopen('php://output', 'w'); 35 foreach($data as $row){ 36 fputcsv($stream, $row); 37 } 38}
試しにexport関数内で
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=test.csv');
を付与したところ、ブラウザよりcsv形式でダウンロードすることはできたのですが、肝心の保存部分が動作せず苦慮しております…。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。