Overview | |
|
|
|
CHMOD upload folder to 777 (change permission) | |||||
|
webmin install
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.
Overview | |
|
|
|
CHMOD upload folder to 777 (change permission) | |||||
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // รับเฉพาะ .gif กับ .jpg นะครับ print $file_name; if(strtoupper(substr($file_name, -4)) == ".JPG" || strtoupper(substr($file_name, -4)) == ".GIF"){ copy($file,"/www/upload/".$file_name); } ?> <form action="upload1.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"><input type="submit"> </form> |
1 2 3 4 5 6 7 8 9 10 11 12 | <?php print $file_type; if($file_type == "image/jpeg" || $file_type == "image/gif"){ copy($file,"/www/upload/".$file_name); } ?> <form action="upload2.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"><input type="submit"> </form> |
สวัสดีครับ วันนี้จะขอเขียนตัวอย่างง่ายๆ ในการ Upload ไฟล์จากเครื่องผู้ใช้ มาที่ web server โดยใช้ php ซึ่งท่านสามารถเอาไปดัดแปลงเพื่อให้ใช้งานได้ตามความต้องการครับ ในตัวอย่างนี้จะมีไฟล์ด้วยกัน 2 ไฟล์ครับ ไฟล์แรก จะเป็นฟอร์มในการ ใส่ชื่อไฟล์ที่จะ Upload ครับ ชื่อว่า main.htm code เป็นดังนี้ครับ <HTML> <FORM ENCTYPE="multipart/form-data" ACTION="add_file.php" METHOD="post"> Upload ไฟล์นี้มาที่ Server: <INPUT TYPE="file" NAME="userfile"><BR> <INPUT TYPE="submit" VALUE="Upload"><BR> </FORM> </HTML> ซึ่งก็จะเห็นว่าไม่มีอะไรยาก มีเพียงแค่ ENCTYPE="multipart/form-data" ที่จะบอกว่า ข้อมูลใน form นี้เป็น mime format เท่านั้นเอง คราวนี้ลองมาดูอีกไฟล์ที่เป็นส่วนในการจัดการ upload มาที่ server ชื่อ add_file.php ครับ หน้าตาเป็นดังนี้ <?php $Upload_Dir = "d:"; //กำหนดว่าจะให้ copy ไฟล์ที่มาจากเครื่องผู้ใช้ไปที่ใด ระบุที่นี่ได้ครับ $Max_File_Size = 100000; //กำหนดขนาดไฟล์ที่ใหญ่ที่สุดที่อนุญาตให้ upload มาที่ Server มีหน่วยเป็น byte $File_Type_Allow = array("application/x-zip-compressed" /*.zip*/, "text/plain" /*.txt*/, "image/bmp" /* .bmp, .ico*/, "image/gif" /* .gif*/, "image/pjpeg" /*.jpg, .jpeg*/, "image/jpeg" /* .jpg, .jpeg*/); //กำหนดประเภทของไฟล์ว่าไฟล์ประเภทใดบ้างที่อนุญาตให้ upload มาที่ Server function validate_form($file_input,$file_size,$file_type) { //เป็น function ที่เอาไว้ตรวจสอบว่าไฟล์ที่ผู้ใช้ upload ตรงตามเงื่อนไขหรือเปล่า global $Max_File_Size,$File_Type_Allow; if ($file_input == "none") { $error = "ไม่มี file ให้ Upload"; } elseif ($file_size > $Max_File_Size) { $error = "ขนาดไฟล์ใหญ่กว่า $Max_File_Size ไบต์"; } elseif (!check_type($file_type,$File_Type_Allow)) { $error = "ไฟล์ประเภทนี้ ไม่อนุญาตให้ Upload"; } else { $error = false; } return $error; } function check_type($type_check) { //เป็นฟังก์ชัน ที่ตรวจสอบว่า ไฟล์ที่ upload อยู่ในประเภทที่อนุญาตหรือเปล่า global $File_Type_Allow; for ($i=0;$i<count($File_Type_Allow);$i++) { if ($File_Type_Allow[$i] == $type_check) { return true; } } return false; } $error_msg = validate_form($userfile,$userfile_size,$userfile_type); // ตรวจดูว่า ไฟล์ที่ upload ตรงตามเงื่อนไขหรือเปล่า if ($error_msg) { echo $error_msg; } else { if (copy($userfile,$Upload_Dir."/$userfile_name")) { //ทำการ copy ไฟล์มาที่ Server echo "ไฟล์ Upload เรียบร้อย"; } else { echo "ไฟล์ Upload มีปัญหา"; } } ?> ครับสำหรับตัวอย่างนี้ก็คงไม่ยากอะไรในการที่จะ upload ไฟล์มาที่ Server นะครับ แต่มีข้อระวังอยู่นิดหน่อยก็คือ ในตัวอย่างจะเป็น code ที่ ทดสอบที่เครื่องของผู้เขียนเอง โดยใช้ Apache และ php บน Win98 หากจะเปลี่ยนมาใช้บน Unix Server ก็ให้แก้ตัวแปร $Upload_Dir เป็น ของ unix และที่สำคัญท่านอาจพบปัญหาเกี่ยวกับ permission ท่านต้องแน่ใจว่า directory ที่ท่านระบุเปิดสิทธิ์ให้ทุกคนมีสิทธิ์เขียนไปที่ Directory นั้นด้วย หากพบปัญหาอะไรก็ถามมาได้ครับ |
<?php
phpinfo();
?> |
<html>
<form action="upload.php" method=post enctype="multipart/form-data">
File: <input type=file name="userfile"><br>
<input type=submit><br>
</form>
</html> |
<?php
$realname = $HTTP_POST_FILES['userfile']['name'];
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name']))
{
copy($HTTP_POST_FILES['userfile']['tmp_name'], "./upload/$realname");
echo "Upload Filename: " . $HTTP_POST_FILES['userfile']['name'];
}
else{
echo "Upload not complete";
}
?> |
<!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=windows-874" /> <title></title> <style type="text/css"> body{ font-size:12px; } </style> <?php // สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า function page_navigator($before_p,$plus_p,$total,$total_p){ echo $before_p." to ".$plus_p." of ".$total." | Go to Page "; for($i=0;$i<$total_p;$i++){ echo "<a href='?s_page=$i'>".intval($i+1)."</a> "; } } ?> </head> <body> <?php // ทำการเชิ่อมต่อฐานข้อมูล $link=mysql_connect("localhost","root","123456") or die("error".mysql_error()); mysql_select_db("test",$link); ?> <?php $q="select * from province "; // แก้ไขขื่อตารางตามต้องการ $qr=mysql_query($q); $total=mysql_num_rows($qr); $e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า if(!isset($s_page)){ $s_page=0; }else{ $chk_page=$s_page; $s_page=$s_page*$e_page; } $q.=" limit $s_page,$e_page"; $qr=mysql_query($q); if(mysql_num_rows($qr)>=1){ $plus_p=($chk_page*$e_page)+mysql_num_rows($qr); }else{ $plus_p=($chk_page*$e_page); } $total_p=ceil($total/$e_page); $before_p=($chk_page*$e_page)+1; ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td bgcolor="#CCCCCC">จังหวัด</td> </tr> <tr> <td> <fieldset> <?php // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า page_navigator($before_p,$plus_p,$total,$total_p); ?> </fieldset> </td> </tr> <?php $q="select * from province limit $s_page,$e_page"; // แก้ไขขื่อตารางตามต้องการ $qr=mysql_query($q); while($rs=mysql_fetch_array($qr)){ ?> <tr> <td bgcolor="#F2F2F2"><?=$rs['name_province']?></td> </tr> <?php } ?> <tr> <td> <fieldset> <?php // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า page_navigator($before_p,$plus_p,$total,$total_p); ?> </fieldset> </td> </tr> </table> </body> </html>
<style type="text/css"> <!-- span.split-page-present { padding: 0px 5px; margin: 0px 1px; border: 1px solid #999999; background-color: #999999; line-height: 1.5em; font-size: 0.9em; color: #FFFFFF; } span.split-page-select { color: #000000; } span.split-page-select a:link { padding: 0px 5px; margin: 0px 1px; border: 1px solid #E5E5E5; background-color: #E5E5E5; line-height: 1.5em; font-size: 0.9em; color: #000000; text-decoration: none; } span.split-page-select a:visited { padding: 0px 5px; margin: 0px 1px; border: 1px solid #E5E5E5; background-color: #E5E5E5; line-height: 1.5em; font-size: 0.9em; color: #000000; text-decoration: none; } span.split-page-select a:hover { padding: 0px 5px; margin: 0px 1px; border: 1px solid #999999; background-color: #999999; line-height: 1.5em; font-size: 0.9em; color: #FFFFFF; text-decoration: none; } div#wrapper-split-page { margin: 10px 20px 10px 20px; text-align: right; }--> </style> <?php # Function: Display split pages : link normal function split_page($geturl = "", $rows_page = "", $totalpage = "", $startpage = "", $endpage = "", $page = "") { if (!empty($rows_page)) { $total_all_records = number_format($rows_page, ','); echo " <strong>Page:</strong> {$page} of {$totalpage} (Total: {$total_all_records} items) "; if (!empty($rows_page)) { if ($page > 1) { $back = $page - 1; echo "<a href=\"{$geturl}&page=1\"><img src=\"images/icon/icon-first-page.png\" title=\"First Page\" width=\"10\" height=\"12\" border=\"0\" align=\"absmiddle\" /></a> "; echo "<a href=\"{$geturl}&page={$back}\"><img src=\"images/icon/icon-prev-page.png\" title=\"Previous Page\" width=\"7\" height=\"12\" border=\"0\" align=\"absmiddle\" /></a> "; if ($startpage > 1) { echo " ... "; } } else { echo "<img src=\"images/icon/icon-first-page-dummy.png\" title=\"First Page\" width=\"10\" height=\"12\" border=\"0\" align=\"absmiddle\" /> "; echo "<img src=\"images/icon/icon-prev-page-dummy.png\" title=\"Previous Page\" width=\"7\" height=\"12\" border=\"0\" align=\"absmiddle\" /> "; if ($startpage > 1) { echo " ... "; } } # Display number pages for link and select for ($i = $startpage; $i <= $endpage; $i++) { if ($i == $page ) { echo "<span class=\"split-page-present\">{$i}</span>"; } else { echo "<span class=\"split-page-select\"><a href=\"{$geturl}&page={$i}\">{$i}</a></span>"; } } if ($page < $totalpage) { $next = $page + 1; if ($endpage < $totalpage) { echo " ... "; } echo " <a href=\"{$geturl}&page={$next}\"><img src=\"images/icon/icon-next-page.png\" title=\"Next Page\" width=\"7\" height=\"12\" align=\"absmiddle\" /></a>"; echo " <a href=\"{$geturl}&page={$totalpage}\"><img src=\"images/icon/icon-last-page.png\" title=\"Last Page\" width=\"10\" height=\"12\" align=\"absmiddle\" /></a>"; } else { if ($endpage < $totalpage) { echo " ... "; } echo " <img src=\"images/icon/icon-next-page-dummy.png\" title=\"Next Page\" width=\"7\" height=\"12\" align=\"absmiddle\" />"; echo " <img src=\"images/icon/icon-last-page-dummy.png\" title=\"Last Page\" width=\"10\" height=\"12\" align=\"absmiddle\" />"; } } //echo " <span class=\"split-page\">{ <a href=\"{$geturl}&page=all\">Show All</a> }</span>"; } // end if: !empty($rows_page) } # Process data : use MySQL class for any website $link=mysql_connect("localhost","root",""); mysql_select_db("thailocation"); # Configuration variable for split pages $pagelen = 20; // config : set value for display per pages $range = 5; // config : number page for show in link $page = $_GET['page']; # Mode SQL Command : Select for count data in condition $sql = " SELECT "; // $sql .= " ar_id "; $sql .= " FROM "; $sql .= " tbl_article "; // end if : $cate_id != "all" # Execute query command $res['select_all_data'] = mysql_query($sql); # Calculate variable for split pages $rows_page = mysql_num_rows($res['select_all_data']); $totalpage = ceil($rows_page / $pagelen); # Check : if (empty($page)) { $page = 1; } // if ((!ereg("^[0-9]+$", "$page")) && ($page != "all")) { $page = 1; } // if ($page > $totalpage) { $page = 1; } // $goto = ($page - 1) * $pagelen; $startpage = $page - $range; $endpage = $page + $range; if ($startpage <= 1) { $startpage = 1; } if ($endpage >= $totalpage) { $endpage = $totalpage; } # Mode SQL Command : Select data for split pages (main data in condition) $sql = " SELECT "; $sql .= " * "; $sql .= " FROM "; $sql .= " tbl_article "; $sql .= " ORDER BY "; $sql .= " ar_id "; $sql .= " DESC "; if ($page != "all") { // Display all page : { Show All } $sql .= " LIMIT $goto , $pagelen "; } # Execute query command $res['select_split_page'] = mysql_query($sql); # Get number of rows in result : per page $count_rows = mysql_num_rows($res['select_split_page']); ###########Show data#################################$i = 1;$cols=2; //Colums$c=$cols; echo "<table>\n<tr>"; while ( $rs = mysql_fetch_array( $res['select_split_page'] ) ) { $c--; echo "<td width='50%' valign='top'>"; echo "<table width='100%' border='0' cellspacing='0' cellpadding='2'> <tr>"; if($rs['ar_picture']){ echo "<td width='10%' valign='top'><img src='datafiles/article/".$rs['ar_picture']."' align='absmiddle' style='border:1px solid #666666;'></td>"; } echo "<td width='90%' valign='top'> <a href='".WEB_URL."/article/".$_REQUEST['ar_type_name']."-".eregi_replace(" ","+",$rs['ar_topic'])."-".$rs['ar_id'].".html' target='_blank' > <strong><u>".$rs['ar_topic']."</u></strong> <br><font style='font-size:11px; color:#666666'>".$rs['ar_fdetail']."...</font></a> </td>"; echo "</tr> "; echo " <tr> <td height='10' style='border-bottom: dotted 1px #E1E1E1' colspan='2'></td> </tr> "; echo "</table>"; echo "</td>"; // if ($c==0) { echo "</tr><tr>"; $c=$cols; } } echo "</tr>\n</table>\n";############################################ ?> <div id="wrapper-split-page"> <?php# Call function split_pages$geturl = WEB_URL."/article_list/".$_REQUEST['ar_type_name']."-".$_REQUEST['ar_type']."&tag=".$_REQUEST['tag'].""; if ($page == "all") { // Display all page : { Show All } $total_all_records = number_format($rows_page, ','); echo "<span class=\"split-page\"><strong>Show All</strong> { {$total_all_records} items }</span>"; } else { // if page = 1, 2, 3 split_page($geturl, $rows_page, $totalpage, $startpage, $endpage, $page); // call function split_pages()}?> </div>