Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > อัพโหลดไฟล์จากหน้าเว็บ เข้า server centos 7 ไม่ได้



 

อัพโหลดไฟล์จากหน้าเว็บ เข้า server centos 7 ไม่ได้

 



Topic : 128737



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



คือผมทำหน้าเว็บไว้สำหรับอัพโหลดไฟล์น่ะครับ พอลองที่เครื่องตัวเองที่เป็น localhost os windows ก็ใช้งานได้ปกติ
แต่พออัพขึ้น server (ลงเอง) ที่เป็น linux centos 7 พออัพโหลดไฟล์ทุกอย่างเหมือนจะปกติ ข้อมูลไฟล์เข้า DB แต่พอเปิดดูไฟล์
กลับไม่เจอไฟล์ที่ server เลย
อันนี้เป็นโค้ดสำหรับอัพโหลดไฟล์ครับ ให้มีการ random ชื่อใหม่ด้วยครับ

Code (PHP)
///// โหลดไฟล์
		$ext = pathinfo(basename($_FILES['file']['name']),PATHINFO_EXTENSION);  //เก็บชื่อไฟล์กับนามสกุลของไฟล์
		$new_file_name = rand(100000,999999).".".$ext; //ทำการตั้งชื่อให้ใหม่ xxxx.ตามด้วยนามสกุลของไฟล์
		$img_path = "myfile/"; //กำหนดที่โฟลเดอร์ที่จะเซฟอัพโหลดไว้  
		$upload_path = $img_path.$new_file_name; //โฟลเดอร์ที่เก็บ+ชื่อใหม่ของ
		
		///// ขณะที่ Upload
		$success = move_uploaded_file($_FILES['file']['tmp_name'], $upload_path); 
		if($success==FALSE)  //หากอัพโหลดไม่สำเร็จ
		{
			echo "<script>alert ERROR : ไม่สามารถ Upload ไฟล์ได้ !! </script>";
		}
		$file = $new_file_name; 
		


ขอบคุณครับ



Tag : PHP, MySQL, Linux, Apache, Appserv







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-08-29 09:22:01 By : bleachakira View : 4550 Reply : 19
 

 

No. 1



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ดูสิทธิ์การเข้าถึงโฟลเดอร์ที่เก็บไฟล์ด้วยครับ ต้องตั้งเป็น 775 หรือ 777 ก็ว่ากันไป






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-29 14:34:24 By : apisitp
 


 

No. 2



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้า $success เท่ากับ true แสดงว่า move_upload_file() ทำงานเสร็จสมบูรณ์
และ $upload_path มีอยู่จริง เริ่มจาก directory ปัจจุบันที่ทำงานอยู่

แต่ real path คืออะไรก็เช็คเอานะครับ
ใช้ getcwd() ตรวจสอบ directory ปัจจุบันเป็นอะไร แล้ว บวก path folder ใหม่ เช็คดูว่าอยู่ตรงไหนแน่

Code (PHP)
if($success!==true)  
{
	echo "<script>alert('ERROR : ไม่สามารถ Upload ไฟล์ได้ !!' ".(isAdmin? getcwd() : '').") </script>";
	exit; // เพิ่มโค๊ดตรงนี้ด้วย ควรหยุดการทำงานไม่ควรจะทำอะไรต่อไป แต่ก็แล้วแต่กรณีถ้ารู้ว่าจะทำอะไรต่อไป
}



ประวัติการแก้ไข
2017-08-29 20:52:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-29 15:09:27 By : Chaidhanan
 

 

No. 3



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณทั้งสองท่านมากๆ ครับ เดี๋ยวพรุ่งนี้จะไปลองทำดู ได้ผลยังไงแล้วจะแจ้งนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-29 20:17:56 By : bleachakira
 


 

No. 4



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-08-29 15:09:27
รายละเอียดของการตอบ ::
ผมลองใส่โค้ดตรวจสอบดูแล้วครับ อันนี้เป็นตอนที่ยังไม่ได้ใส่ pathครับ
หก

ส่วนอันนี้ใส่ path แล้วครับ
aa

โฟลเดอร์นี้ ก็มีอยู่จริงนะครับ แต่ไม่เข้าใจทำไมอัพโหลดไม่เข้า ทั้งที่ก็ตั้งสิทธิ์ 777 775 แล้ว

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-04 15:19:01 By : bleachakira
 


 

No. 5



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


มันต้องใช้ คำสั่ง selinux เพื่อ อนุญาตให้ httpd เขียนไฟล์ได้

ลองใช้คำสั่งนี้
getsebool -a | grep http
เพื่อดูว่า allow_http..อะไรซักอย่าง... จำ property ไม่ได้ ได้ enabled หรือไม่

และใช้คำสั่ง
setsebool -P allow_http...อะไรซักอย่าง on

ลองเสริชหาดูเอานะครับ ผมก็ไม่ได้ใช้นานแล้ว คนแก่ลืมง่ายซะด้วย
จะค้นให้ก็ไม่ค่อยมีเวลา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-06 23:54:59 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-06 23:54:59
รายละเอียดของการตอบ ::
ครับผม ขอบคุณสำหรับคำแนะนำครับ
ผมลองใช้คำสั่ง ที่แนะนำได้ แล้วผลตามนี้ครับ
httpd
คาดว่าน่าจะเป็นตัวบนที่ off อยู่หรือเปล่า ครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 08:40:39 By : bleachakira
 


 

No. 7



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


ทำคำสั่งนี้
setsebool -P allow_httpd_anon_write 1
เสร็จแล้วต่อด้วยคำสั่งนี้
chcon -R -t public_content_rw_t /var/www

ยังไงก็หา document แต่ละคำสั่งอ่านเพิ่มเติมนะครับ จะได้ประโยชน์มากๆ เพราะมันทำอะไรได้อีกเยอะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 09:40:34 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 7 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-07 09:40:34
รายละเอียดของการตอบ ::
ได้แล้วครับผม ขอบคุณมากๆเลยครับ ผมจะไปหาอ่านนะครับ
สอบถามเพิ่มเติมครับ ถ้าเกิดว่า เรา disable selinux ไปเลย จะเป็นผลเสียมากกว่าผลดีหรือเปล่าครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 09:53:13 By : bleachakira
 


 

No. 9



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


ถูกต้องครับ มันมีไว้เพี่อความปลอดภัยของ server
ที่นี้เครื่องเรา เราทำ จะอนุญาตทั้งหมดก็ได้ แต่ช่องโหว่ก็จะเยอะตามไปด้วย
ทำเป็นอันๆ ที่จำเป็นย่อมดีกว่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 10:01:45 By : Chaidhanan
 


 

No. 10



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 9 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-07 10:01:45
รายละเอียดของการตอบ ::
ครับผม ขอบคุณอีกครั้งครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 10:25:21 By : bleachakira
 


 

No. 11



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

รบกวนอีกรอบครับ ไฟล์บางไฟล์มัน อัพโหลดไม่ผ่านครับ ทั้งที่เป็นไฟล์ชนิดเดียวกัน
ผมลองอัพโหลด ไฟล์ pdf 2 ไฟล์ปรากฏว่าผ่าน 1 ไฟล์ไม่ผ่าน 1 ไฟล์ พอจะมีวิธีเช็คไหมครับ
ว่ามันไม่ผ่านเพราะอะไร
ตอนนี้ โค้ด ในการอัพโหลดเป็นแบบนี้ครับ
Code (PHP)
///// โหลดไฟล์
		$ext = pathinfo(basename($_FILES['file']['name']),PATHINFO_EXTENSION);  //เก็บชื่อไฟล์กับนามสกุลของไฟล์
		$new_file_name = rand(100000,999999).".".$ext; //ทำการตั้งชื่อให้ใหม่ xxxx.ตามด้วยนามสกุลของไฟล์
		$img_path = "myfile/"; //กำหนดที่โฟลเดอร์ที่จะเซฟอัพโหลดไว้
		$upload_path = $img_path.$new_file_name; //โฟลเดอร์ที่เก็บ+ชื่อใหม่ของ
		
		///// ขณะที่ Upload
		$success = @copy($_FILES['file']['tmp_name'], $upload_path);
		
		 if($success==true)  //หากอัพโหลดสำเร็จ
		{
			$file = $new_file_name;
		}
		else if($success==false)  
		{
			echo "ERROR : ไม่สามารถ Upload ไฟล์ได้ !!555 ".(isAdmin? getcwd() : '')."".$img_path."";
			exit; 
		}



ประวัติการแก้ไข
2017-09-07 11:21:17
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 11:08:01 By : bleachakira
 


 

No. 12



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


php.ini upload_max_filesize
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 11:22:26 By : Chaidhanan
 


 

No. 13



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 12 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-07 11:22:26
รายละเอียดของการตอบ ::
ครับ พึ่งแก้เสร็จเลยครับ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 11:32:58 By : bleachakira
 


 

No. 14



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


isAdmin

นี่เป็นโค๊ดสมมติ นะครับ กำหนดมันหรือยัง 5555 ไม่กำหนดนี่มันเป็นจริง ตลอดนะครับ


if($success==true) ตรงนี้ใช้ === (เท่ากับ 3 ตัว) ต้องเป็น boolean true เท่านั้น เป็นอย่างอื่นถือว่า false ทั้งหมด


ประวัติการแก้ไข
2017-09-07 11:42:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 11:40:37 By : Chaidhanan
 


 

No. 15



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 14 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-07 11:40:37
รายละเอียดของการตอบ ::
โอ่ กำหนดที่ไหนเหรอครับ อันนี้ไม่เข้าใจจริงๆครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 13:25:25 By : bleachakira
 


 

No. 16



โพสกระทู้ ( 9,542 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้ายังไม่เข้าใจส่วนนี้เอาง่ายๆก่อนก็แล้วกัน ที่ต้นโปรแกรม
define( "isAdmin", true); // กำหนดใช้ในขณะแก้ไขโปรแกรม
หรือ
define( "isAdmin", false); // กำหนดใช้เมื่อแก้ไขเรียบร้อยแล้วพร้อมใช้งานจริง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 13:38:35 By : Chaidhanan
 


 

No. 17



โพสกระทู้ ( 58 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 16 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-07 13:38:35
รายละเอียดของการตอบ ::
ขอบคุณครับ แล้วผมจะศึกษาเพิ่มเติมนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-07 15:24:40 By : bleachakira
 


 

No. 18

Guest


สุดยอดครับท่าน ผมทำทั้งวันยังไม่ได้ มาเจอท่านผมต้อง Thakyou สุดๆ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-09 19:51:56 By : krootaya
 


 

No. 19

Guest


ตอบความคิดเห็นที่ : 6 เขียนโดย : bleachakira เมื่อวันที่ 2017-09-07 08:40:39
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......
สำหรับคนที่ลองทำตามแล้วยังไม่ได้ ถ้าดูจากรูปน่าจะไปเปิดตัว httpd_anon_write นี้มากกว่านะครับ
Code
setsebool -P httpd_anon_write on

แล้วลอง
Code
getsebool -a | grep http

อีกครั้งเพื่อดูว่า on รึยัง
จากนั้น
Code
chcon -R -t public_content_rw_t /var/www

/var/www คือตำแหน่งโฟลเดอรที่เราต้องการเปิดให้สามารถเพิ่มไฟล์ได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-09-12 09:14:07 By : ssdfk
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อัพโหลดไฟล์จากหน้าเว็บ เข้า server centos 7 ไม่ได้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่