:::

8. 上傳與分頁

一、 關於上傳

  1. 若表單中有file元件(用來上傳的元件),其表單編碼(enctype)一定要加上:
    enctype="multipart/form-data"
  2. 記得建立一個資料夾,例如:uploads(linux下權限記得設定為777)
  3. 每上傳一個附檔(假設file欄位名稱為file),都會產生一組 $_FILES 超級全域變數:
    • (1)  $_FILES['file']['name']:上傳檔案原始名稱。
    • (2)  $_FILES['file']['type']:檔案的 MIME 類型,例如“image/gif”。
    • (3)  $_FILES['file']['size']:已上傳檔案的大小,單位為bytes。
    • (4)  $_FILES['file']['tmp_name']:檔案被上傳後的臨時檔案名。
    • (5)  $_FILES['file']['error']:和該檔案上傳相關的錯誤代碼。
  4. 上傳的步驟:送出上傳→檔案會暫時放到tmp中→程式要搬移該檔到指定的位置。
  5. 搬移上傳檔方法:move_uploaded_file(暫存檔 , 新路徑檔名)

二、 中文檔名的問題

  1. 在windows下,中文檔名是用Big5儲存,若網站是UTF-8編碼,會無法下載。
  2. 一般解決方式有幾種:
    • (1)  無視之,或請使用者盡量安裝在Linux環境,或者告知僅支援英文數字檔名。
    • (2)  上傳時,強制轉換成英文數字檔名。下載時,有三種作法:
      • a. 下載時即時產生檔案,此法若遇到大檔就不適合。
      • b. 將英文檔名複製另一份並改為中文檔名(看平台來選擇適當編碼存檔)
      • c. 最後一種就是什麼都不處理,直接用英文數字存檔,最簡單。
  3. 若要改成英文數字檔名,可用新聞序號為主檔名,從資料夾觀看時會比較容易辨識;並搭配順序或亂數產生其餘檔名,以避免檔名重複。
  4. 取得附檔名的方法:(詳見:http://liaosankai.pixnet.net/blog/post/27533126-php-%E5%8F%96%E5%BE%97%E6%AA%94%E6%A1%88%E7%9A%84%E5%89%AF%E6%AA%94%E5%90%8D%28php-get-file-extension%29
    $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

三、 上傳多個檔案

  1. file欄位要加上multiple始可多選,name要加上[],使之變成陣列,例如:
    <input type="file" name="file[]" multiple>
  2. 上傳後,陣列會像這樣:$_FILES['file']['name'][0]、$_FILES['file']['name'][1]

四、 建立檔案資料表eznews_files

五、 分頁工具

  1. 請將PageBar.php引入,並在$sql和mysql_query($sql);之間插入以下語法:
    $PageBar = new PageBar($sql, 10);
    $bar_arr=$PageBar->makeBar();
    $sql=$bar_arr['sql'];
    $bar=$bar_arr['bar'];
  2. 將$bar放到適當位置,這就是分頁工具(BootStrap3版)。

:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D34%26tbdsn%3D1096

書籍目錄

展開 | 闔起

線上使用者

33人線上 (11人在瀏覽線上書籍)

會員: 0

訪客: 33

更多…