หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
Upload File ด้วย PHP (อ่าน 148,161)
ศุภกิจ ทองดี (9'M) บทความโดย: นาย ศุภกิจ ทองดี (9'M)
e-mail: webmaster@sourcecode.in.th
mobile: 09-5009-5351
Line: suppakit.thongdee
Youtube: 9Mcode
Fanpage: Sourcecode.in.th
   

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 
 
Freelanceรับพัฒนาโปรแกรม และเว็บ โดย 9'M 

สำหรับคราวนี้ เราจะดูวิธีการในการ Upload File โดยใช้ PHP ซึ่ง ก็เป็นเรื่องง่ายมากครับ และในตัวอย่างนี้ผมใช้ Run กะ IIS บน WindowsXP Professional ซึ่งได้ทำการลง PHP Version 4.3.0 ซึ่ง Download มาจาก www.php.net และสำหรับเพื่อนๆที่ได้ใช้ Windows ตัวอื่นๆ สามารถ อ่านวิธีการติดตั้ง ได้จาก บทความ ที่ผ่านมาของผมครับ (ติดตั้ง PHP 4 บน WINDOWS 9X, Me และ NT(IIS2 และ IIS3), ติดตั้ง PHP 4 บน WINDOWS 2000) แต่สำหรับผู้ใช้ WindowsXP ก็มีวิธีคล้ายกัน ที่เพิ่มเข้ามาก็คือ ให้เข้าไปแก้ไฟล์ php.ini ในหัวข้อ cgi.force_redirect = 0 ครับ ต่อจากนั้นก็ให้ทดสอบ โดยใช้วิธีการทดสอบเดียวกันกับ ติดตั้ง PHP 4 บน WINDOWS 2000 ครับ โดยใช้เพียง function phpinfo(); ในการทดสอบครับ ดังตัวอย่างด้านล่าง

test.php

<?php
     phpinfo();
?>

สำหรับการปรับแต่งการ Upload สามารถปรับเปรียนได้ที่ไฟล์ php.ini โดยดูที่

file_uploads = On

และสำหรับ upload_tmp_dir = จะเป็นการกำหนด path ที่ใช้เป็น Temp เก็บไฟล์ไว้ชั่วคราวเท่านั้น โดยไฟล์ต่างๆ ที่เรา upload มาแล้วจะถูกเก็บไว้ใน Path นี้ ไว้ไม่นาน ก็จะถูกลบโดยอัตโนมัติครับ , ค่าของ upload_tmp_dir นี้ เราไม่ต้องกำหนด ก็ได้ครับ เพราะมันจะใช้ Temp ที่มีในระบบ OS นั้นๆครับ

upload_max_filesize จะเป็นการกำหนด ขนาดของไฟล์สูงสุดที่ สามารถรับได้

เอาละครับงานนี้เรามาดูส่วนของไฟล์ html ที่จะทำหน้าที่เป็นตัว Post ข้อมูลไปยังไฟล์ php โดยมีโค้ดดังนี้

upload.html

<html> 
<form action="upload.php" method=post enctype="multipart/form-data">
File: <input type=file name="userfile"><br>
<input type=submit><br>
</form>
</html>

โดยส่วนที่สำคัญ ก็คือส่วนของ enctype="multipart/form-data" และ name="userfile" โดย ส่วนแรกจะเป็นการบอกว่ามีการ ส่งทั้ง ข้อมูลที่เป็นข้อความ และ ที่เป็นไฟล์ครับ ,ส่วนหลังจะเป็นการกำหนดชื่อของ Input ที่ส่งไป ครับ

ตอนนี้ ก็มาถึงเรื่องไฟล์ php ที่เราจะใช้ในการรับ และ จัดการกับ ไฟล์ที่ส่งมา โดยมีโค้ดดังตารางด้านล่าง

upload.php

<?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";
}
?>

***ก่อนเราจะทำการทดสอบโค้ด ให้คุณ สร้าง โฟล์เดอร์ upload ไว้ที่ๆเดียวกับที่คุณเก็บไฟล์ php นะครับ

จากโค้ดข้างต้น จะเป็นการเก็บชื่อไฟล์ที่เรา upload มา เก็บไว้ในตัวแปร $realname จากนั้นจะเป็นการตรวจสอบว่า ในข้อมูลที่ส่งมา (ผ่าน การ Post ) มีไฟล์มาด้วยหรือ ไม่ ถ้าไม่ ก็ให้แสดงข้อความว่า Upload not complete แต่ หากว่า มีการส่งไฟล์มาด้วย ก็จะทำการ คัดลอกไฟล์ดังกว่า ด้วยการใช้ function copy คัดลอกไปไว้ใน โฟล์เดอร์ upload โดยมีชื่อไฟล์ เป็นชื่อเดิมของไฟล์ที่ส่งมา หลังจากนั้นก็แสดงข้อความ Upload File : และชื่อไฟล์ที่ได้รับ

ทิ้งทาย

หากว่าคุณไม่สามารถใช้ $HTTP_POST_FILES ได้ ให้คุณทำการเพิ่มโค้ด

global $HTTP_POST_FILES;

ไว้เป็นบรรทัดแรกของโปรแกรม และสำหรับ ฟังก์ชั่น is_uploaded_file นั้นจะใช้ได้ตั้งแต่ PHP 3>= 3.0.17 และ PHP 4 >= 4.0.3 ครับ แล้วพบกันใหม่กับ 9M

 

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -


118.173.242.194 ความคิดเห็น #30 (จาก IP: 118.173.242.194)
ถ้าต้องการส่งไปไว้ที่ Client ที่ระบุ IP address(Terasation) ละครับ ต้องเปลี่ยนตรงไหนครับ
จากคุณ : surveyor / innum@hotmail.com [2015-07-13 15:37:10]
สอบถาม
  • ห้ามการโฆษณา หากต้องการติดต่อหาลูกค้า ติดต่อโฆษณาโดยตรงได้ที่ webmaster@sourcecode.in.th
  • ห้ามใช้คำหยาบและคำพูดที่ไม่เหมาะสม
  • ขอสงวนสิทธิหากตรวจพบ ข้อความที่ไม่เหมาะสม ข้อความนั้นจะถูกลบทันที
ชื่อ
อีเมล์
รายละเอียด

 
 
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
บทความที่เกี่ยวข้อง

เริ่มต้นพัฒนาเว็บ PHP ด้วย XAMPP

เริ่มต้น Ajax ด้วยการสร้างนาฬิกา

แสดง Drive ของฝั่ง Client ด้วย JavaScript

เลือก Download รูปภาพด้วย ADODB Stream

Downlod หน้าเว็บ ของเว็บอื่น ด้วย ASP

สร้างภาพ Jpeg แบบ Dynamic ด้วย PHP

แสดงรายชื่อ Folder และ File ฝั่ง Server ด้วย ASP

ติดตั้ง PHP 4 บน WINDOWS 9X, Me และ NT(IIS2 และ IIS3)

เทคนิคการเปลี่ยนใช้ภาษาไทยกับ Dreamweaver

ติดตั้ง PHP 4 บน WINDOWS 2000
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th