2014-09-26 103 views
1

經過一些問題,我終於可以用谷歌應用程序引擎將文件上傳到我的存儲桶,但是現在上傳文件的名稱是不可讀的,如臨時名稱,加密或類似的東西: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

回答

1

我做了它的工作,這很容易,我只是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); 
相關問題