การอัพโหลดไฟล์ขนาดใหญ่เกินกว่าที่อนุญาตไว้ใน php.ini สามารถแก้ได้หลายวิธี
-
กำหนดใหม่เฉพาะที่ใช้
เพิ่ม code เข้าไปก่อนที่จะดำเนินการกับไฟล์ขนาดใหญ่เป็นพิเศษ วิธีนี้จะมีผลแค่ในส่วนที่เรากำหนดเท่านั้นเป็นวิธีที่ปลอดภัยที่สุด
<?php ini_set('max_execution_time', '300'); ini_set('post_max_size', '64M'); ini_set('upload_max_size', '64M');
-
ใช้ไฟล์ .htaccess
ใช้ได้กับเซิร์ฟเวอร์ที่ใช้ apache เท่านั้น กำหนดโดยใส่ไว้ในไฟล์นามสกุล .htaccess
RewriteEngine On # if not root directory #RewriteBase / # upload larage file php_value max_execution_time 300 php_value max_input_time 300 php_value post_max_size 64M php_value upload_max_filesize 64M
-
กำหนดใน php.ini
จะมีผลกับทุกๆส่วนในเซิร์ฟเวอร์ เพราะฉะนั้น ถ้าไม่ใช่ server ของตัวเองหรือเป็น private server แล้วอาจจะไม่สามารถใช้วิธีนี้ เพราะผู้ดูแลระบบมักจะไม่ให้แก้ไขในส่วนนี้ ยกเว้นในบาง server เช่น fatcow ยอมให้แก้ไขค่าตั้งต้นได้ แต่เซิร์ฟเวอร์ไทยไม่เคยเจอที่ไหนยอมให้แก้ไข
max_execution_time = 300 post_max_size = 64M upload_max_filesize = 64M
การทดสอบดูว่าสามารถกำหนดค่าใหม่ได้จริงๆ รึเปล่าทำได้โดยเรียกใช้ function phpinfo() ค่าที่เปลี่ยนจะอยู่ใน column Local Value แถว max_execution_time, post_max_size, และ upload_max_filesize
About the author