2011年7月30日 星期六

php 上傳及處理解壓縮檔案

最近瘋狂的跟 php 成為好朋友,繼之前把 os 由 win7 改成 ubuntu 之後,開始記錄些使用心得,這篇在說明怎麼處理使用者上傳的檔案和若為壓縮檔如何解壓縮。

一.上傳檔案
upload.php

<form method="post" action="test.php" enctype="multipart/form-data">
    <table>
        <tr>
            <td>
                <input id="Button1" name="file1" type="file" value="Select File" />
            </td>
        </tr>
        <tr>
            <td colspan="4" style="text-align: center">
                <input id="Button2" type="submit" value="OK" />
            </td>
        </tr>
    </table>
</form>
PS:
1. 要用 form 及 post 來傳送,且一定要有 enctype="multipart/form-data"
2. input type 要用 file
3. 記得指定 input name


test.php
//搬移上傳之壓縮檔至解壓縮目錄
$upload = $folder . basename($_FILES['file1']['name']);
if(!move_uploaded_file($_FILES['file1']['tmp_name'], $upload))
{
echo "move_uploaded_file error!";
exit;
}

//設定上傳之壓縮檔案權限
if(!chmod($upload, 0777))
{
echo "chmod error!";
exit;
}
PS:
1. move_uploaded_file 會覆蓋舊檔


二.處理壓縮檔
網路上有好心大大提供 class 可使用,連結為 PclZip,有幾個常用的參數以下列出。
-PCLZIP_OPT_PATH : 要解壓縮到哪的路徑。可用於extract()、extractByIndex()。
-PCLZIP_OPT_SET_CHMOD : 設定解壓縮出來的檔案的CHMOD值。可用於extract()、extractByIndex()。


test.php
include("pclzip.lib.php");
//解壓縮檔案並設定權限
$archive = new PclZip($upload);
if($archive->extract(PCLZIP_OPT_PATH, $folder, PCLZIP_OPT_SET_CHMOD, 0777) == 0)
{
echo "PclZip extract error!";
exit;
}

//設定解壓縮後資料夾權限
$path = pathinfo($upload);
$filename = $path['filename'];
$filename = $folder . $filename . "/";
if(!chmod($filename, 0777))
{
echo "chmod error!";
exit;
}
PS:

2011年7月19日 星期二

Ubuntu 設定 資料夾分享(Samba) for Windows & Mac

因為要給 windows 的使用者共享資料夾以開發方便用.
研究了一下資料夾分享, 最後使用了簡易的 samba 來用.

1.在要分享的資料夾按滑鼠右鍵, 選擇"共享屬性".
2.將"共享此資料夾"打勾(若未安裝 samba 會提示安裝, 照著操作即可).
3.增加 samba 使用者, 輸入 sudo smbpasswd -a username, 然後輸入密碼設定即可.
PS: 這裡以需要輸入帳密才可進入資料夾來設定, 因此新增之使用者亦要是系統已建立之使用者.
4.設定 /etc/samba/smb.conf 的 workgroup 為自己想要的群組.
5.以上完成後, 若按下"建立共享"後出現 'net usershare' returned error 255..., 即修改 /etc/samba/smb.conf,  在 [global] 下增加一行, usershare owner only = False 就解決啦!
6.重開 samba, 輸入指令 sudo /etc/init.d/samba restart 即可.

若要在系統建立新的使用者, 輸入以下指令.
1.sudo adduser username
2.輸入密碼及個人資訊

若要讓使用者擁有管理權限, 輸入以下指令.
adduser username admin

若要查詢使用者擁有管理權限, 輸入以下指令.
grep admin /etc/group

若要刪除使用者, 輸入以下指令.
sudo deluser username


Mac 要連結時請先在 Finder -> 連結伺服器(cmd+k)
輸入 smb://host 就完成啦!

Ubuntu 設定 phpMyAdmin 路徑

最近在開始 comics 專案後, 把原本測試機的系統由 win7 改成了 ubuntu.
經過從頭安裝 apache + php + mysql + phpmyadmin 後, 發現安裝過程都順利.
打開 http://localhost 也都能看到 it's work!
但卻發現 phpmyadmin 沒有在 /var/www/ 裡, 打開 http://localhost/phpmyadmin ==> 404 error !

解決 : 原來安裝目錄在 /usr/share/ 裡, 輸入以下指令建立捷徑即可.
sudo ln -s /usr/share/phpmyadmin /var/www

2011年6月24日 星期五

Facebook 開發過程(一)

話說辨識顏色玩遊戲做到一個段落, 正準備做個簡報去跟治療師 Demo.
新工作來啦, 用 PHP 做個 Facebook 的 App 吧!

雖然之前有寫過簡單的 PHP 連 MySQL 的經驗, 但還是對 PHP 很不熟.
就開始找相關資料, 網路上不少教學, 但一開始沒去注意授權這件事, 讓自己吃了大虧.

這裡轉貼個大大的教學文, 說明授權這東東, 連結在此.

開發大致流程如下:
1.申請個 Facebook 開發人員應用程式(要注意連外網址), 連結在此.
2.下載 Facebook for PHP API, 連結在此.
3.修改申請好的 AppID 及 Secret Key.
4.最重要的來了, 授權選項, $facebook->getLoginUrl() 裡 'req_perms' 部份.
這個放個連結說明授權選項的內容, 要依照 App 所需的部份來使用.
當然沒用到的最好別亂加, 個人隱私重要的很!
5.把寫好的 PHP 檔上傳到指定的網路空間去就可以啦.
最近看到一則關於 app store iphone 軟體下載量的文章, 轉貼自 iapp 網站連結.

這些數據看來可以給開發者不少的想法, 尤其是內容製作上如何更加符合需求!

2011年6月23日 星期四

Augmented Reality Cinema

今天看到一個不錯的"應用概念", 是使用AR(Augmented Reality)的技術.
只要將手機鏡頭對準某著名電影場景, 螢幕就會顯示出該電影中的畫面.

2011年5月25日 星期三

簡報技巧

在商周專刊中看到,列出了五個項目,開始用這個表格來檢查每一場簡報吧。

1.人們是否準時來出席你的簡報,還是他們會找藉口遲到早退?
2.當你在報告時,觀眾有沒有認真在聽,還是他們在做別的事情,比如說跟別人聊天或是在手機或筆電上查看email?
3.當別人在你簡報中發問,你會覺得高興,還是覺得很煩希望他們讓你先說完?
4.在你簡報完,聽眾會不會謝謝你的努力,然後說你真厲害可以把你的想法用簡明易懂的方式解釋清楚,還是他們在簡報就一走了之?
5.在你簡報完,你的想法和建議是否照你的想要的實施?還是你對於很少聽眾在意你的想法和建議感到失望?

每個問題都有兩個部分,前者表示成功,後者表示失敗。
在每場簡報後,如果你選前者的平均次數低於三次,那就砍掉重練吧!!!