1、form標籤enctype屬性
表單中enctype="multipart/form-data"的意思,是設定表單的mime編碼。預設情況,
只有使用了multipart/form-data,才能完整的傳遞檔案資料
input標籤 type 屬性中的 "file"
2、$_files 系統函式
$_files['myfile']['name'] 客戶端檔案的原名稱。
$_files['myfile']['type'] 檔案的 mime 型別,例如"image/gif"。
$_files['myfile']['size'] 已上傳檔案的大小,單位為位元組。
$_files['myfile']['tmp_name'] 儲存的臨時檔名,一般是系統預設。
$_files['myfile']['error'] 該檔案上傳相關的錯誤**。
0; 檔案上傳成功。
1; 超過了檔案大小php.ini中。
2; 超過了檔案大小
max_file_size 選項指定的值。
3; 檔案只有部分被上傳。
4; 沒有檔案被上傳。
5; 上傳檔案大小為0。
3、move_uploaded_file函式
上傳後移動檔案到目標位置的函式
move_uploaded_file(臨時檔案,目標位置和檔名);
4、is_uploaded_file 函式
判斷上傳mime型別的檔案函式
is_uploaded_file (mime)
[php]view plain
copy
<?php
header("content-type:text/html; charset=utf-8"
);
require_once
('dbi/dbconn.php'
);
$id=
$_post
['id'
];
$gotopage
= ($id
=='new'
) ?
"./products.php"
:"./products.php?id="
.$id
; $upload_file
=$_files
["upload_file"
]["name"
];//獲取檔名
$upload_tmp_file
=$_files
["upload_file"
]["tmp_name"
];//獲取臨時檔名
$upload_filetype
=$_files
["upload_file"
]["type"
];//獲取檔案型別
$upload_status
=$_files
["upload_file"
]["error"
]; //獲取檔案出錯情況
$upload_dir
="../image/upload/"
; //指定檔案儲存路徑
// 分析檔案出錯情況並給出提示
$alertinfo
= ""
; switch
($upload_status
)
if($upload_status
!= 0)
// 迴圈排除替換檔名中的非法字元
$errorchar
= array
("-"
," "
,"~"
,"!"
,"@"
,"#"
,"$"
,"%"
,"^"
,"&"
,"("
,")"
,"+"
,","
,"("
,")"
,"?"
,"!"
,"「"
,"」"
,"《"
,"》"
,":"
,";"
,"——"
); //定義非法字符集
foreach
($errorchar
as$char
)
} // 定義檔案最終的儲存路徑和名稱
$upload_path
= $upload_dir
.$upload_file
;
$gbk_upload_path
= iconv(
'utf-8'
, 'gbk'
,$upload_path
); if(
is_uploaded_file
($upload_tmp_file
) )
else
if(move_uploaded_file(
$upload_tmp_file
,$gbk_upload_path
))
else
} else
} ?>
PHP上傳原理及應用
1 form標籤enctype屬性 表單中enctype multipart form data 的意思,是設定表單的mime編碼。預設情況,只有使用了multipart form data,才能完整的傳遞檔案資料 input標籤 type 屬性中的 file 2 files 系統函式 files ...
PHP上傳原理及操作實現
關於php上傳檔案的函式類庫,網上有許多封裝很完善,大家直接拿來用就可以。本文章只是說下關於上傳原理和簡單的上傳操作,老鳥就無視了哈 舉例單檔案上傳,多檔案原理還是不變,只不過多了點小技巧 上傳檔案 input type file name file input type submit value ...
PHP上傳原理及操作實現
關於php上傳檔案的函式類庫,網上有許多封裝很完善,大家直接拿來用就可以。本文章只是說下關於上傳原理和簡單的上傳操作,老鳥就無視了哈 還有一些安全性判斷比如 服務端限制能接收型別的檔案,而客戶端惡意將病毒檔案的字尾名改為配型的檔案上傳。舉例單檔案上傳,多檔案原理還是不變,只不過多了點小技巧 inde...