簡體   English   中英

如何在運行PHP 7.2的localhost Google App Engine上上傳文件?

[英]How to upload files on localhost Google App Engine running PHP 7.2?

我正在嘗試實現用戶上傳圖像的功能。 我將該圖像保存到Google Storage。 然后,我將使用GoogleStorageTools獲取圖像的公共可服務URL,以便將其顯示在我的網站上。

我需要在本地主機上對此進行測試。 當我以前使用php5.5時,我可以使用dev_appserver.py,它將模仿gs://集成,並讓我像在雲中運行一樣創建文件並與之交互。

但是,我正在為此應用程序使用php7.2,該應用程序無法使用dev_appserver.py,我只需要通過php的內置網絡服務器運行即可。 嘗試上傳文件時,出現Google存儲錯誤。 這是我腳本中接收上載文件的代碼:

$storage = new StorageClient();
$storage->registerStreamWrapper();

$basefilename = uniqid().'-'.sanitize_string($_FILES['imagefile']['name']);

$gsfilepath = 'gs://#default#/images/'.$basefilename;

if ( ! move_uploaded_file($_FILES[ 'imagefile' ]['tmp_name'], $gsfilepath)) {
    error_log('Failed to move uploaded file. ' . $_FILES[ 'imagefile' ]['tmp_name'] . ' => ' . $gsfilepath);
}

這些是我嘗試運行move_uploaded_file()代碼時遇到的錯誤:

Google \\ Cloud \\ Core \\ Exception \\ NotFoundException:客戶端錯誤: POST https://www.googleapis.com/upload/storage/v1/b//o?uploadType=resumable導致404 Not Found響應:在/中找不到第263行的Users / kenny / myproject / trunk / server / gae / vendor / google / cloud-core / src / RequestWrapper.php

致命錯誤:未捕獲的Google \\ Cloud \\ Core \\ Exception \\ NotFoundException:客戶端錯誤: POST https://www.googleapis.com/upload/storage/v1/b//o?uploadType=resumable導致404 Not Found響應:在第263行的/Users/kenny/myproject/trunk/server/gae/vendor/google/cloud-core/src/RequestWrapper.php中找不到

警告:move_uploaded_file():無法將'/ private / var / folders / 1k / 8xt74j593ss9yxbtqrv925j40000gp / T / phpKsSN6q'移動到'gs://#default#/images/5c1be56fd752d-hold-on-to-your-butts.png在第11行的/Users/kenny/myproject/trunk/server/gae/testupload-upload.php中

存儲桶名稱#default#在Cloud Storage Stream Wrapper中無效。 正如您在錯誤中看到的那樣,庫要發布到的URI缺少存儲桶ID。

要了解原因,請參閱google/cloud-storageStreamWrapper::openPath()方法。

存儲桶名稱在parse_url返回值中表示為host密鑰。 如下所示,您提供的gs URI導致parse_url失敗:

php > $url = 'gs://#default/foo';
php > var_dump(parse_url($url));
bool(false)

我假設#default#是在某些情況下有效的助手。 嘗試在gs URI中提供真實的存儲區ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM