การอัพโหลดไฟล์ขนาดใหญ่เกินกว่าที่อนุญาตไว้ใน php.ini สามารถแก้ได้หลายวิธี
-
กำหนดใหม่เฉพาะที่ใช้
เพิ่ม code เข้าไปก่อนที่จะดำเนินการกับไฟล์ขนาดใหญ่เป็นพิเศษ วิธีนี้จะมีผลแค่ในส่วนที่เรากำหนดเท่านั้นเป็นวิธีที่ปลอดภัยที่สุด
ini_set 1234<?php
ini_set
(
'max_execution_time'
,
'300'
);
ini_set
(
'post_max_size'
,
'64M'
);
ini_set
(
'upload_max_size'
,
'64M'
);
-
ใช้ไฟล์ .htaccess
ใช้ได้กับเซิร์ฟเวอร์ที่ใช้ apache เท่านั้น กำหนดโดยใส่ไว้ในไฟล์นามสกุล .htaccess
.htaccess 12345678910RewriteEngine 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 ยอมให้แก้ไขค่าตั้งต้นได้ แต่เซิร์ฟเวอร์ไทยไม่เคยเจอที่ไหนยอมให้แก้ไข
php.ini 123max_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