我正在Google App Engine标准环境下开发PHP应用程序。
我将图像上传到应用程序的关联存储桶,然后使用以下代码来提供图像:
https://lh3.googleusercontent.com/<some_hash>
当然可以重定向到这样的页面:
{{1}}
图像可以正确显示,但是在浏览器的标题中显示为“ unnamed.jpg”,当我尝试将图像保存到计算机时,默认名称显示为“ unnamed.jpg”。每当我上传图片时,无论它的真实名称是什么,或者是否确实通过使用API通过我的应用程序上传它,或者是否通过Web云控制台直接将其上传到存储桶,都会发生这种情况。
有什么方法可以指定在提供图像时使用什么名称?
答案 0 :(得分:0)
您是否设置了标头:“ Content-disposition”,“ Content-Transfer-Encoding”和“ Content-Type”
答案 1 :(得分:0)
CloudStorageTools::getImageServingUrl
使用googleusercontent.com
,它是一个“沙盒”,因此您不能更改所提供文件的名称。
我建议您看一下CloudStorageTools::serve
方法,在该方法中您可以使用save_as
参数设置文件名。请注意,该类型是字符串,而不是文档中提到的布尔型,serve
将花费一些App Engine计算时间。
代码应如下所示:
use \google\appengine\api\cloud_storage\CloudStorageTools;
// ...
$file_name = "gs://my-app.appspot.com/the_image_name.jpg"
$options = ['save_as' => 'the_image_name.jpg'];
CloudStorageTools::serve($file_name, $options);