الأربعاء، 13 أبريل 2011

كيف تزيد حجم الرفع في php؟؟

علَق على الموضوع

تحتاج في بعض الأحيان أن تزيد حجم رفع الملفات Upload عند رفعك لملفات كبيرة الحجم على سبيل المثال الفيديو أو الصوتيات، وتعتمد أغلب السيرفرات حجم الرفع 8 ميجا، وهو حجم مناسب لأغلب الملفات والصوتيات، لكن عند محاولة رفع ملفات كبيرة أو استخدام سكربت لرفع الملفات مثل Uploadify، تواجهك مشكلة.

فكيف تزيد حجم الملفات المرفوعة ؟؟

في الحقيقة هناك عدة طرق لتعديل اعدادات السيرفر، وزيادة حجم الملفات، ولكن بداية نصف أهم القيم التي يجب تعديلها:
  • post_max_size: هذه القيمة تصف الحد الأقصى لحجم كل الملفات المرفوعة من خلال الفورم الواحد، على سبيل المثال: إذا كانت تساوي 8 ميجا، وكان لديك ملفان تريد رفعهما، فيجب أن لا يزيد حجم الملفين عن 8 ميجا.
  • upload_max_filesize: تصف هذه القيمة الحجم الأقصى لكل ملف منفردا.
  • memory_limit: وتصف هذه القيمة الحد الأقصى لاستخدام الذاكرة لمعالجة الفورم وعملية الرفع، وطبعا لا يعقل أن كتابة جملة بسيطة تحتاج لـ 20 ميجابايت!، ولكن معالجة عملية الرفع تحتاج لذاكرة معقولة، حاول زيادة هذه القيمة حتى تصل لنتيجة منطقية.


نأتي الآن لعملية تعديل إعدادات السيرفر، أعتقد أنه يجب عليك أن تعرف كيف يمكن تغيير إعدادات السيرفر من شركة الاستضافة لديك، ولكن إذا لم تكن تعرف كيف تقوم بتعديل الإعدادات، فيمكنك تجريب الطرق التالية:

1- تعديل ملف php.ini مباشرة.
إذا كان لديك صلاحية الدخول للسيرفر مباشرة فيمكنك إيجاد ملف php.ini، ومن ثم تعديل القيم أعلاه للقيم التي تريدها، وتعتبر هذه أسهل الطرق جميعا، لأنك تقوم بتغيير اعدادات السيرفر نفسه، وباستخدام أي محرر بسيط يمكنك تغيير القيم، وبعدها إعادة تشغيل الأباتشي. restart apache.

2- تغيير ملف .htaccess:
ملفات .htaccess موجودة على سيرفرات الـ apache فقط، يمكنك من خلال هذه الملفات تغيير قيم محددة يستخدمها سيرفر الـ apache، ويكون ملف .htaccess موجودا في مجلد الـ root، وتطبق الإعدادات على كل المجلدات الفرعية، وبالتالي إذا كان سيرفر الـ apache يستخدم الـ php فإمكانك وضع القيم التالية فيه:

php_flag file_uploads On
php_value memory_limit 8M
php_value post_max_size 8M
php_value upload_max_filesize 2M

إذا عمل موقعك فبها ونعمت، وإن لم يعمل وأظهر لك رسالة 500 internal server error، فالسيرفر لا يدعم php كموديول، وبالتالي لا يمكنك استخدام هذه الطريقة، فقط قم بحذف الملف وجرب الطريقة التالية.

3- رفع ملف php.ini:
تعتبر هذه الطريقة البديل الأمثل للطريقة السابقة، وهي تعمل على معظم السيرفرات، وقد نجحت معي شخصيا وكانت السبب في كتابتي لهذه التدوينة، وهي تنفع إذا كان سيرفر الـ apache يستخدم الـ php كـ CGI. وبالتالي، وفي أغلب الأحوال، تنجح هذه الطريقة في تغيير إعدادات الـ php باستخدام ملف php.ini، طبعا ليس عليك وضع كل إعدادات الـ php، وإنما فقط الإعدادات التي تريد تعديلها، وهي على سبيل المثال:
[PHP]
; Whether to allow HTTP file uploads.
file_uploads = On
; Maximum amount of memory a script may consume (8MB)
memory_limit = 8M
; Maximum size of POST data that PHP will accept.
post_max_size = 8M
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M


وهذا الملف تقوم برفعه في داخل المجلد الذي يحتوي سكربت الرفع، ولا يتم تطبيقه في كل المجلدات مثل الطريقة الثانية.

4- إذا لم يحالفك الحظ في الطرق الثلاث السابقة، أنصحك بالتواصل مع شركة الاستضافة، ومعرفة كيفية طريقة تغيير الإعدادات.

0 التعليقات:

إرسال تعليق