คือว่ามีปัญหาในการเซ็ท relative path ใน IIS ค่ะ
เปิดใช้งาน Enable parent paths ใน IIS แล้ว แต่เวปก็ยังมองไม่เห็น virtual path อยู่ดี
เช่น file_exists($_GET[‘file’]) มันไม่เจอค่ะ ต้อง file_exists(“D:\Hosting\domain.com\www\filename”) ถึงจะใช้ได้
ไม่ทราบว่าใครเคยเจอปัญหาแบบนี้บ้างคะ ลอง google ดูเห็นว่าเป็นที่ permission ก็ลงทำตามแล้วแต่ยังไม่ได้ ![](http://www.thaihosttalk.com/public/style_emoticons/<#EMO_DIR#>/5e565bcb.gif)
Windows 2003 + IIS6 + Websitepanel
ขอบคุณค่ะ
$_GET[‘file’]
มันต้องส่งมาแบบ get น่ะครับ
xxx.php?file=D:\Hosting\domain.com\www\filename
ลองให้มัน echo $_GET[‘file’]; ออกมา
ค่ะ ส่งแบบ GET
แต่อยากใช้แบบนี้ค่ะ โดยที่ไม่ต้องระบุ Real Path แต่มันไม่ได้
xxx.php?file=images/filename
สาเหตุที่อยากใช้แบบนี้เพราะ หลายๆคนคงเขียน code แบบไม่ระบุ path หรือไม่ใส่ dirname(FILE) ถ้าย้าย Hosting มาที่นี่คงต้องแก้โค้ดใหม่
พอจะมีวิธีมั๊ยคะ
file นี้เป็นตัวแปรที่รับ path ของ file หรือว่า เป็นตัวแปนที่รับ file มาครับ
path ค่ะ
ตัวอย่างค่ะ
![]()
แล้วไฟล์ thumbnail.php รับค่า $file มาเพื่อ get thumbnail
แต่ใน IIS ไม่สามารถใช้ relative path เพื่อรับค่า path ‘images/products/detail/image.jpg’ ได้ค่ะ
ต้องมาใส่ค่าใน thumbnail.php เพิ่มเป็น
$filename=dirname(__FILE__)."/".$_GET['file']
หรือ
$filename=$_SERVER['DOCUMENT_ROOT']."/".$_GET['file']
หรือ
$filename="D:\Hosting\domain.com\www\".$_GET['file']
ปรกติใน localhost สามารถเรียก Relative Path โดนตรงได้เลย
มีวิธีการไหนบ้างคะที่สามารถทำให้เรียกแบบนี้ได้
$filename = $_GET['file']
ใน ASP Server.MapPath(request.QueryString(“file”)) ก็ไม่เจอ ![](http://www.thaihosttalk.com/public/style_emoticons/<#EMO_DIR#>/beautifu2.gif)
ลองสร้าง thumbnail.php ใหม่ดูครับ
เอาแค่
<?phpinfo()?> พอครับ
kke
8
แก้ code เป็นตามนี้น่าจะดีที่สุด ใช้ได้ทุกเครื่อง
$filename=$_SERVER[‘DOCUMENT_ROOT’]."/".$_GET[‘file’]
ดูเรื่องความปลอดภัยด้วยนะครับ รับค่าไฟล์จาก url ตรวจสอบดีๆ
ขอบคุณทุกความเห็นค่ะ
สรุปคือว่า IIS6 2003 ไม่สามารถเรียกใช้งาน file แบบ Relative Path ได้ ใช่หรือเปล่าคะ ต้องระบุ Path เอง งานนี้ แก้ไฟล์เป็นร้อยตัวเลย แง้ว…