蒼天家 本家
PHP - 檔案上傳 2017-01-10
HTML端




multiple="multiple":多檔上傳
name="img_files[]":多檔上傳後方需要加[]
name="img_files":單檔上傳
accept="image/jpeg":可接受的檔案類型

PHP端
$upload_num = 10; //最大上傳總數
if(isset($_FILES['img_files'])){ //當偵測到HTML端name為img_files物件有值
for( $i = 0 ; $i < $upload_num ; $i++){ //建立10次上傳
if(isset($_FILES['img_files']['tmp_name'][$i])){ //當偵測到有值時
if($_FILES['img_files']['error'][$i] == 0){ //當上傳錯誤碼皆無誤時
//從暫存位置複製至與檔案同位置資料夾中
if(copy($_FILES['img_files']['tmp_name'][$i] , iconv("UTF-8", "big5", $_FILES['img_files']['name'][$i]))){
unlink($_FILES['img_files']['tmp_name'][$i]); //移除暫存位置的資料
}
}
}
}
}

$_FILES['img_files']['name']:原始檔名
$_FILES['img_files']['tmp_name']:暫存檔名
$_FILES['img_files']['size']:檔案尺寸( / 1024得到的數字為kb)
$_FILES['img_files']['type']:檔案類型
$_FILES['img_files']['error']:錯誤代碼

常見錯誤代碼一覽:
0:可正常上傳
1:上傳超過PHP.ini內upload_max_filesize設定大小
2:上傳超過MAX_FILE_SIZE設定大小
3:僅有一部分檔案上傳成功
4:無任何檔案被上傳

iconv為將瀏覽器的UTF-8轉至作業系統的big5環境,
若是採用linux系的作業系統,
則可以將環境調整為utf8環境,
可以減少windows下僅支援單一繁體中文而其他語言亂碼問題.

另外,
可以採用$.form來實現無刷頁上傳的方式,
寫法放在jQuery分類
關於我

隨手用部落格

紀錄平時學習用到的東西

考慮想重改版

Github 自學倉庫

我的 Github 帳號

PHP開發

公司: 原生PHP

個人: Slim -> Flight

關聯文章
CORS的簡單跨域實作(PHP + jQuery)
優化MySQL的在innodb資料效能
PHP , JS - 雙方json資料溝通方式.
PHP - is_dir_檢查資料夾是否存在
PHP - 圖片縮小與放大
PHP 處理圖片旋轉問題
PHP - 檔案上傳環境設定
PHP - 檔案函數相關操作
PHP - 檔案上傳
PHP - Session設定
PHP - Cookie的設定
PHP - addslashes_反斜線,單引號,雙引號寫入資料庫
PHP - nl2br_輸入文字時按enter時自動加入<br>換行
PHP - strip_tags_html 標籤轉換純字元
PHP - PHP_EOL 解決各平台換行記號不統一問題
PHP - 前端大量值傳至後端方式
PHP - implode_explode 單一變數分解成陣列 / 陣列組合成單一變數
PHP - 查詢MySQL上Table的資訊(AUTO_INCREMENT)
PHP - mysqli 欄位相關
PHP - mysqli 資料撈取
PHP - mysqli 資料庫的使用
PHP - 引用外部的資料
PHP與前端(JS,HTML)相互傳值的方法
MySQL - 使用正規化
MySQL - 資料表的建立
MySQL - 資料庫簡單的計算
MySQL - 基礎語法
CSS - DIV / TD內部將圖片完全置中
CSS - overflow超過時處理方式
CSS - 左右文字平均對齊
HTML - 手機的顯示尺寸(RWD整理一篇文章)
HTML - 智慧型手機啟動app的網址
HTML - 預先讀取頁面或是資料的方式
JS - 手機裝置偵測位移
JS - 手機裝置轉址至手機版本介面
JS、PHP - if...else...精簡用法
JS - 文字取代與全部取代
JS - 偵測鍵盤事件方法
JS - 數值取樣
JS - 轉址與重新載入的語法
JS - 陣列變呼叫與存取的方式
jQuery Plugins - 透過timer.js來實現自動計時連續處理特定動作行為
jQuery Plugins - 透過jQuery form來實現上傳圖片不刷頁
jQuery - inArray找尋陣列符合值得方法
jQuery - 動態特效(animate與fade)相關
jQuery - 目前畫面卷軸位置、物件相對/絕對位置
jQuery - 滑鼠滑入滑出與hover用法
jQuery - focus/blur 焦點.失去焦點用法
JS、PHP - 轉頁方法
JS - 倒數功能
jQuery - 偵測目前的位移
jQuery - 偵測元素內的值是否有異動
jQuery - 僅執行一次one
jQuery - 事件綁定bind / live / delegate /on
jQuery - 操作子元素取得父元素屬性(.parent)
jQuery - 透過proxy將其它物件帶入特定function
回首頁