การอัพโหลดไฟล์ขนาดใหญ่เกินกว่าที่อนุญาตไว้ใน php.ini สามารถแก้ได้หลายวิธี
-
กำหนดใหม่เฉพาะที่ใช้
เพิ่ม code เข้าไปก่อนที่จะดำเนินการกับไฟล์ขนาดใหญ่เป็นพิเศษ วิธีนี้จะมีผลแค่ในส่วนที่เรากำหนดเท่านั้นเป็นวิธีที่ปลอดภัยที่สุด[code language=”php” title=”ini_set”]<?php
ini_set(‘max_execution_time’, ‘300’);
ini_set(‘post_max_size’, ’64M’);
ini_set(‘upload_max_size’, ’64M’);[/code] -
ใช้ไฟล์ .htaccess
ใช้ได้กับเซิฟเวอร์ที่ใช้ apache เท่านั้น กำหนดโดยใส่ไว้ในไฟล์นามสกุล .htaccess[code language=”text” title=”.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[/code] -
กำหนดใน php.ini
จะมีผลกับทุกๆส่วนในเซิฟเวอร์ เพราะฉะนั้น ถ้าไม่ใช่ server ของตัวเองหรือเป็น private server แล้วอาจจะไม่สามารถใช้วิธีนี้ เพราะผู้ดูแลระบบมักจะไม่ให้แก้ไขในส่วนนี้ ยกเว้นในบาง server เช่น fatcow ยอมให้แก้ไขค่าตั้งต้นได้ แต่เซิฟเวอร์ไทยไม่เคยเจอที่ไหนยอมให้แก้ไข[code language=”text” title=”php.ini”]max_execution_time = 300
post_max_size = 64M
upload_max_filesize = 64M[/code]
การทดสอบดูว่าสามารถกำหนดค่าใหม่ได้จริงๆ รึเปล่าทำได้โดยเรียกใช้ function phpinfo() ค่าที่เปลี่ยนจะอยู่ใน column Local Value แถว max_execution_time, post_max_size, และ upload_max_filesize