我正嘗試使用PHP將一些文件上傳到Google雲端存儲。這似乎是部分工作,因爲我看到的Web控制檯中的文件,但我注意到,所有文件只有14個字節的大小,而原來更大。只有14個字節被上傳到Google雲端存儲
這是我使用的代碼:
/**
*
*/
public static function saveFile($originalFile, $newFilename) {
$bucket = MyStorage::getBucket();
if ($bucket == null) {
// Save locally
Storage::disk('local')->put(FileController::$FILE_DIR . $newFilename, file_get_contents($originalFile));
} else {
// Save to Google Cloud Platform
$bucket->upload($originalFile->getRealPath(), ['name' => $newFilename]);
}
}
/**
*
*/
private static function getBucket() {
$appEnv = getenv('APP_ENV');
if ($appEnv == "production" || $appEnv == "test") {
$GOOGLE_CLOUD_PROJECT_ID = getenv('GOOGLE_PROJECT_ID');
$GOOGLE_CLOUD_BUCKET_NAME = getenv('GOOGLE_BUCKET_NAME');
$storage = new StorageClient(['projectId' => $GOOGLE_CLOUD_PROJECT_ID]);
$bucket = $storage->bucket($GOOGLE_CLOUD_BUCKET_NAME);
return $bucket;
} else {
return null;
}
}
$originalFile->getRealPath()
回報像/tmp/asdfasdfadf
和我驗證過該文件存在,是一個合理的規模。 $newFilename
變量名是我希望它被存儲爲,這部分似乎工作,因爲我在Web控制檯中看到該文件名。
任何想法可能發生什麼?
我真的不知道PHP,但有可能是你只上傳文件路徑作爲一個字符串,而不是到實際的文件?如果您查看客戶端庫,他們似乎使用'fopen':https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/v0.24.0/storage/bucket?method=上傳 即'$ bucket-> upload(fopen($ originalFile-> getRealPath(),'r'),['name'=> $ newFilename]);' –
您可以在php中更改最大允許大小的上傳。 ini.serch這個upload_max_filesize = 128M – lalithkumar
@RobertLacok好,我會檢查出來並報告回來。 – Sandy