Google云端存储上传了无法读取的文件名(php)

问题描述:

经过一些问题,我终于可以用谷歌应用程序引擎将文件上传到我的存储桶,但是现在上传文件的名称是不可读的,如临时名称,加密或类似的东西:Google云端存储上传了无法读取的文件名(php)

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到comunicate,我觉得我读它是更多钞票,但现在我不知道任何事情,为时已晚,我的大脑烧毁:(提前

谢谢!

+0

噢好吧,我必须更改upload_handler.php ...这似乎很明显,但我误解了一些东西...... – mikelzl 2014-09-26 12:54:15

+0

我假设你已经找到了答案,但对于记录,你应该使用'move_uploaded_file'来重命名临时文件。 – Mars 2014-09-29 01:44:24

+0

是的,谢谢火星! – mikelzl 2014-09-29 09:55:51

我做了它的工作,这很容易,我只是missunderstood了一些东西...

它必须在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);