2.寫入檔案上傳字元
下一行加表單選項的表單(會變成紅虛線框框)
然後表單裡面加一個檔案欄位.跟一個按鈕.
3選取表單內容.然後 動作到 p6_2.php
也就是<form action="p6_2.php"
這部分完成
4.接著建立p6_2.php網頁
首先在最上端輸入指令
(檔案指定名稱)=(指令)(來源檔案欄位名稱)(指令)
<?php
$type=$_FILES['fileField']['type'];
$size=$_FILES['fileField']['size'];
$name=$_FILES['fileField']['name'];
$tmp_name=$_FILES['fileField']['tmp_name'];
?>
然後再<body>呼叫變數
<?php
echo "檔案類型:".$type."</br>";
echo "檔案尺寸:".$sizemb."</br>";
echo "檔案名稱:".$name."</br>";
echo "暫存名稱:".$tmp_name."</br>";
?>
這時候還只是空上傳
5.然後我們加入一個限定上傳擋名的語法
在暫存名稱下面
echo "暫存名稱:".$tmp_name."</br>";
if($type=="image/jpeg"){
echo "OK";
}else{
echo "oh no";
}
?>
如果有兩個以上可上傳的檔名就是這樣
echo "暫存名稱:".$tmp_name."</br>";
if($type=="image/jpeg" || type=="image/jpeg"){
echo "OK";
}else{
echo "oh no";
}
?>
6.然後加一個限定上傳容量的語法
在上傳限定檔名的下面
echo "暫存名稱:".$tmp_name."</br>";
if($type=="image/jpeg" || type=="image/jpeg"){
if($size < 10240000){
echo "OK";
}else{
echo "to big";
}
}else{
echo "oh no";
}
?>
7.但這會呈現KB.如果要呈現MB
就要這樣子加.ound(數值,位數)函數,請它幫我將裡面的數值四捨五入到小數點第二位
<?php
$sizemb=round($size/1024000,2);
echo "檔案類型:".$type."</br>";
echo "檔案尺寸:".$sizemb."</br>";
echo "檔案名稱:".$name."</br>";
echo "暫存名稱:".$tmp_name."</br>";
8.然後如果要上傳的檔案用日期命名
1.首先加入explode(字元,目標)語法在10240000下面
獲得
$file=explode(".",$name); //把檔名跟檔案類型拆開
然後加新檔名語法.日期語法.最後隨機變數
$new_name=date(ymdhis)."_".rand(0,10);
9最後加入MOVE_UPLOADED真正上傳語法 //拆開的檔案類型放在最後面
move_uploaded_file($tmp_name,"".$new_name.".".$file[1]);
10如果上傳功能只想做到步驟七.原檔名上傳的話
最後的真正上傳語法只要這樣
move_uploaded_file($tmp_name,"".$name);
完整語句為
<?php
$type=$_FILES['fileField']['type'];
$size=$_FILES['fileField']['size'];
$name=$_FILES['fileField']['name'];
$tmp_name=$_FILES['fileField']['tmp_name'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>上傳結果</title>
</head>
<body>
<?php
$sizemb=round($size/1024000,2);
echo "檔案類型:".$type."</br>";
echo "檔案尺寸:".$sizemb."</br>";
echo "檔案名稱:".$name."</br>";
echo "暫存名稱:".$tmp_name."</br>";
if($type=="image/jpeg"){
if($size < 10240000){
$file=explode(".",$name);
$new_name=$file[0]."-".date(ymdhis)."_".rand(0,10);
move_uploaded_file($tmp_name,"".$new_name.".".$file[1]);
echo "OK";
}else{
echo "to big";
}
}else{
echo "oh no";
}
?>
</body>
</html>
參考文獻
https://pjchender.blogspot.tw/2015/03/php-mysql_23.html
沒有留言:
張貼留言