今天終於弄懂了sae的storage怎麼使用。
因為sae不支援檔案使用權限設定,所有的代碼檔案都是不可數的。但是sae提供了特別好的一個分布式檔案儲存體服務,用來存放持久檔案。其實就是用來存放網站的素材檔案,如圖片,檔案等等的。
所以,當需要隱藏檔資料的時候,可以使用使用sae。
使用sae一共有兩種方案。
官方提供的一種方案是:
使用官方的storage類,直接可以進行檔案操作,如存放檔案,刪除檔案,修改檔案等等。
還有一種方法是我在sae的市集看到的,裡面有一個合成的wordpress for sae。
我們可以看到詳細的代碼,我現在將自己簡單的測試代碼貼到下面:(只為實現storage,不適用於開發情境)
| 代碼如下 |
|
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
<?php
$domain = "test";
$upload_dir = "saestor://" . $domain . "/qiao1/2/3/4/5/";
if(!is_dir($upload_dir))
{
//mkdir($upload_dir , 0777);
}
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
if(move_uploaded_file($_FILES["file"]["tmp_name"],$upload_dir . $_FILES["file"]['name']))
{
echo 'ok';
}
//mkdir($upload_dir . 'qiao' , 0777);
?> |
我們可以直接使用move_uploaded_file函數將臨時檔案上傳。要注意的是第二個參數$upload_dir=”saestor://” . $domain . “/” . $dir。
其中,$domain就是storage中建立的storage服務名稱。$dir就是要存放的目錄。
如要將檔案存放在saestor://mydomain/dir1/dir2/dir3/下。可以直接使用該url,而不需要使用mkdir函數進行建立,因為stotage已經將該目錄自動進行了建立。