【问题标题】:Google Cloud Storage uploaded unreadable filesnames (php)谷歌云存储上传不可读的文件名 (php)
【发布时间】:2014-09-26 10:52:21
【问题描述】:

在遇到一些问题后,我终于可以使用谷歌应用引擎将文件上传到我的存储桶,但现在上传文件的名称不可读,例如临时名称、加密或类似的东西:

L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVvQWFjdkRYbWhtY1dPRGc2ZjlkVzRUU0lOV0FFMThWZnAxbUl1MzFVUndLSWdYVTBvdHhyYXl4UWdNOElXWklvX2hkQjdfaHYxbWNvc0dlSEtSQ184enJCU3M4QS5PTW5KWVBiTWdWZTJGdmQ4

我怎样才能给上传的文件起一个我想要的名字???

我使用的代码与谷歌开发者文档中给出的代码相同,如下所示:

require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google\appengine\api\cloud_storage\CloudStorageTools;

$options = [ 'gs_bucket_name' => 'my_bucket' ];
$upload_url = CloudStorageTools::createUploadUrl('/upload_handler.php', $options);


<form action="<?php echo $upload_url?>" enctype="multipart/form-data" method="post">
    Files to upload: <br>
   <input type="file" name="uploaded_files" size="40">
   <input type="submit" value="Send">
</form>

有人知道亚马逊的 S3 是否更简单、更标准友好?此外,如果可以与 GAP 通信,我想我读到它是可能的,但现在我什么都不确定,太晚了,我的大脑被烧毁了 :(

提前致谢!!

【问题讨论】:

  • 哦,好吧,我必须在 upload_handler.php 上进行更改...这似乎很明显,但我误解了一些东西...
  • 我假设您已经找到了答案,但为了记录,您应该使用move_uploaded_file 重命名临时文件。

标签: php google-app-engine amazon-s3 google-cloud-storage


【解决方案1】:

我做到了,这很容易,我只是误会了一些东西......

必须在upload_handler.php 中完成,很明显但是...xD。正如火星所说的 move_uploaded_file 或重命名。像这样的东西(也许对某人有用):

$gs_tmpName = $_FILES["myfile"]['tmp_name'];
$ext = strrchr($gs_name, ".");
$desired_name = "<desired_name>$ext";
$desired_name = mb_convert_encoding($desired_name, "UTF-8", "AUTO");
$desired_name = urlencode($desired_name);
$options = array('gs'=>array('acl'=>'public-read','Content-Type' => $_FILES['myfile']['type']));
$ctx = stream_context_create($options);
rename($gs_tmpName, "gs://<bucket_name>/".$desired_name, $ctx);
$publicUrl = CloudStorageTools::getPublicUrl('gs://<bucket_name>/'.$desired_name , true);

【讨论】:

    猜你喜欢
    • 2014-09-30
    • 2016-12-30
    • 1970-01-01
    • 2018-10-10
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2018-06-16
    相关资源
    最近更新 更多