পোস্টের সামগ্রী-দৈর্ঘ্য সীমা ছাড়িয়ে গেছে


95

ব্যবহারকারীরা যখন তাদের ফাইলগুলি আপলোড করছেন তখন আমি পিএইচপি-তে আমার ত্রুটি_লগে একই রকম ত্রুটি পেয়েছি

পিএইচপি সতর্কতা: পোস্টের বিষয়বস্তুর দৈর্ঘ্য 11933650 বাইটের লাইনে 0 অজানাতে 8388608 বাইটের সীমা অতিক্রম করেছে

আমার পিএইচপি.আইএনইতে (পাবলিক_এইচটিএমএলে কাস্টম ইনআই ফাইল তৈরি করা) এটি কি এই সমস্যাটি সমাধান করবে, আমাকে প্রায় 1 জিবি সেট করতে হবে? আমি php.ini এ আমার সেটিংস পরিবর্তন করতে যাচ্ছি, এটি সমস্যার সমাধান করবে?

upload_max_filesize = 1000M ;1GB
post_max_size = 1000M

আমি 'মেমোরি_মিলিট' সীমাটি কী সেট করব?

এছাড়াও আমার স্ক্রিপ্টে এই ফাইলটি আপলোড করা মাপ <1 গিগাবাইটের জন্য সঠিক হতে পারে

if($_FILES["uploadedfile"]["size"]<1000000)

5
আপনি কি নিশ্চিত যে আপনি সঠিক php.ini সম্পাদনা করছেন?
পেক্কা

আপনি কি সঠিক php.ini সম্পাদনা করছেন (বেশ কয়েকটি রয়েছে)? সেটিংস পুনরায় সেট করা অন্য কিছু? (যেমন: কোনও কল php_ini_set?)
পিসকভোর


@ ডাজা: আপনি যে কোনও জায়গায় php.ini কেবল ড্রপ করতে পারবেন না P পিএইচপি কেবলমাত্র নির্দিষ্ট অবস্থানগুলি পরীক্ষা করে এবং "বর্তমান ডিরেক্টরি" সেগুলির মধ্যে একটি নয়। আপনি কোনও নির্দিষ্ট ডিরেক্টরিতে সেট করতে আপনার httpd.conf এবং / অথবা একটি .htaccess ফাইলটিতে 'php_value' নির্দেশিকা ব্যবহার করতে পারেন। তবে অন্যথায় আপনাকে এটিকে মূল .ini ফাইলটিতে পরিবর্তন করতে হবে। ব্যবহারের php_info()আপনার "স্থানীয়" সেটিংস দেখতে, এবং যা .ini ফাইল ব্যবহার করা হচ্ছে।
মার্চ বি

4
<?php phpinfo(); ?>এটিকে অনুলিপি দিয়ে একটি তথ্য.এইচপিপি তৈরি করুন public_html এ এবং এটি আপনার ব্রাউজারে কল করুন। তারপরে আপলোড_ম্যাক্স_ফাইলসাইজের সঠিক মান আছে কিনা তা পরীক্ষা করে দেখুন।
ড্যানিয়েলবি

উত্তর:


97

8388608 বাইট 8M, পিএইচপি-তে ডিফল্ট সীমা। Php.ini এ পরিবর্তনগুলি অবশ্যই সমস্যার সমাধান করা উচিত (সেগুলি তৈরির পরে আপনার অ্যাপাচি সার্ভারটি পুনরায় চালু করার বিষয়টি নিশ্চিত করুন)।

এখানে স্মৃতি সীমা পরিবর্তন করার দরকার নেই।


.Ini ফাইলে পরিবর্তন করার পরে আপনি আপনার সার্ভারটি পুনরায় চালু করার বিষয়টি নিশ্চিত করুন।
সন্ধু

আপনি যদি sudo service php5-fpm restart
এনজিন্স

পুনঃসূচনাটি আমার জন্য এটি করেছিল। +1 ধন্যবাদ;)
রিফিলন

4
আমাকে শুধু এখানে আমার অভিজ্ঞতা পোষ্ট করা যাক, পুনর্সূচনা আমাকে একটা দিয়েছে stop: Unknown instance:, এটা ঠিক একটি নতুন PHP5-FPM উদাহরণস্বরূপ তৈরি হয়েছিল কিন্তু আমার ওয়েবসার্ভার এখনও পুরানো এক ব্যবহার করছিলেন, আমি কি ছিল তখন sudo killall -KILL php5-fpmতারপরsudo service php5-fpm start
মেমে

আপলোড পরিচালনা করে এমন পিএইচপি প্রক্রিয়াতে আর কী করা হচ্ছে তার উপর নির্ভর করে memory_limitকাঙ্ক্ষিত সর্বাধিক আপলোড আকারের চেয়ে বড় পরিমাণে বাড়ানো প্রয়োজন necessary
ক্রেগ ফিঞ্চ

45

আমি প্রস্তাব দিচ্ছি যে আপনার ফাইলটি post_max_size8M থেকে 32M তে পরিবর্তন করা উচিত php.ini


39

আপনি কেবল php.ini এ সেট করছেন

তারপরে সেট করুন:

upload_max_filesize = 1000M;
post_max_size = 1000M;

তারপরে আপনার এক্সএএমপি পুনরায় চালু করুন .. চিত্রটি দেখুন


17

এটি .htaccess এ আটকানোর চেষ্টা করুন এবং এটি কাজ করা উচিত।

php_value post_max_size 2000M
php_value upload_max_filesize 2500M
php_value max_execution_time 6000000
php_value max_input_time 6000000
php_value memory_limit 2500M

10

post_max_size আপলোড_ম্যাক্স_ফাইলেসাইজের চেয়ে কিছুটা বড় হওয়া উচিত , কারণ HTTP পোস্ট পদ্ধতি ব্যবহার করে আপলোড করার সময় পাঠ্যটিতে ফাইলের আকার এবং নাম ইত্যাদির শিরোনামও অন্তর্ভুক্ত থাকে because

আপনি যদি 1GiB ফাইলগুলি সফলভাবে আপলোড করতে চান তবে আপনাকে সেট করতে হবে:

upload_max_filesize = 1024M
post_max_size = 1025M

দ্রষ্টব্য, গিগাবাইটের সঠিক প্রত্যয়টি হ'ল জি, অর্থাৎ আপলোড_ম্যাক্স_ফাইলেজ = 1 জি।

মেমরি_লিট সেট করার দরকার নেই ।


6

কিছু ক্ষেত্রে, আপনার সর্বোচ্চ কার্যকরকরণের সময় বাড়ানো দরকার।

max_execution_time=30

ইহা আমি তৈরী করেছিলাম

max_execution_time=600000

তখন আমি খুশি ছিলাম


7
প্রায়শই আপনি php.ini এ এটি করতে না চাইতে পারেন কারণ এটি সমস্ত পিএইচপি প্রক্রিয়াগুলিকে সেই সময়ের জন্য চালানোর অনুমতি দেয়। আপনি সেট_টাইম_লিমিট () উদাহরণস্বরূপ সেট_টাইম_মিলিট (600000)
বিলারিচার্ড

5

কেবলমাত্র এক পিপিপিআইএনআই ফাইল থাকতে পারে । উদাহরণস্বরূপ, WAMP ব্যবহার করার সময় নিম্নলিখিত ডিরেক্টরিগুলিতে 2 টি php.ini ফাইল রয়েছে:

  • C:\wamp\bin\apache\apache2.4.9\bin
  • C:\wamp\bin\php\php5.5.12

আপনাকে প্রথমটি সম্পাদনা করতে হবে।


4

আমি দ্বিমত পোষণ করছি, তবে এই সমাধানটি php.ini বা .htaccess এ ফাইলের আকার বাড়ানোর জন্য, যদি ব্যবহারকারী সার্ভার অ্যাপ্লিকেশনটিতে অনুমতি ব্যতীত কোনও ফাইল প্রেরণ করেন তবে তা কার্যকর হবে না। আমি অগ্রভাগে এটিকে বৈধতা দেওয়ার পরামর্শ দিচ্ছি। উদাহরণ:

$(document).ready(function() {
    $ ('#your_input_file_id').bind('change', function() {
        var fileSize = this.files[0].size/1024/1024;
        if (fileSize > 2) { // 2M
            alert('Your custom message for max file size exceeded');
            $('#your_input_file_id').val('');
        }
    });
});


4
কিসের সাথে একমত নন?
রব

4
ক্লায়েন্ট পক্ষের বৈধতা দেওয়া ভাল, তবে এটি সুরক্ষার জন্য কিছুই করে না, কেবলমাত্র তারা যদি কোনও বড় ফাইল আপলোড করে থাকে তবে ব্যবহারকারীকে তাৎক্ষণিক সতর্কতা দেওয়ার জন্য। এখানে পুরো উদ্দেশ্যটি ব্যবহারকারীদের একটি বড় ফাইল আপলোড করা থেকে বিরত রাখা নয়, এটি তাদের একটি বৃহত ফাইল আপলোড করার অনুমতি দেওয়া।
অ্যালটিমাস প্রাইম

4
এটির জন্য কোনও সার্ভার সাইড সমাধান / চেক নেই? আমি খুব সহজেই একটি জেএস চেক বাইপাস করতে পারি।
আকিনুরি

এনভিএম, এটি আবিষ্কার করেছেন:if ($_SERVER["CONTENT_LENGTH"] > (int)(str_replace("M", "", ini_get("post_max_size")) * 1024 * 1024)) { // do w/e
আকিনুরি

2

যদি আপনি Wamp ব্যবহার করে উইন্ডোতে পিএইচপি 5.6.X সংস্করণ ব্যবহার করেন তবে ফাইলের অবস্থানটি হতে পারে,

C:\Windows\php.ini

শুধু চেষ্টা করুন

post_max_size = 100M;

অ্যাপাচে একটিতে পরিবর্তন করার চেষ্টা করুন। এটির মাধ্যমে আপনার ওয়্যাম্প / এক্সএএমএপি .ini ফাইল লোড

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.