首頁 >
PHP - 檔案上傳
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分類