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