কম্পিউটার টিউটোরিয়াল

PHP-এ ৫০০MB-এর উপরে বড় ফাইল আপলোড করা


PHP ব্যবহার করে বড় ফাইল দুটি পদ্ধতিতে আপলোড করা যায়। উভয় পদ্ধতিই নিচে আলোচনা করা হলো:

  • php.ini ফাইলে upload_max_filesize লিমিট পরিবর্তন করে।
  • ফাইল চান্ক আপলোড ইমপ্লিমেন্ট করে, যা আপলোডকে ছোট টুকরোতে ভাগ করে এবং আপলোড কমপ্লিট হলে সেগুলো অ্যাসেম্বল করে।

php.ini ফাইল নিচেরভাবে আপডেট করা যায়:

upload_max_filesize = 50M post_max_size = 50M max_input_time = 300 max_execution_time = 300

এটি এড়ানো উচিত কারণ এটি সার্ভারের সেটিংস এবং অন্যান্য প্রজেক্টও পরিবর্তন করবে।

.htaccess ফাইল আপডেট করা

php_value upload_max_filesize 50M php_value post_max_size 50M php_value max_input_time 300 php_value max_execution_time 300

ইনলাইন সেটিং পরিবর্তন:

<?php    // আপলোড লিমিট পরিবর্তন    ini_set('upload_max_filesize', '50M');    ini_set('post_max_size', '50M');    ini_set('max_input_time', 300);    ini_set('max_execution_time', 300);    // ডেস্টিনেশন ফোল্ডার সেট    $source = $_FILES["file-upload"]["tmp_name"];    $destination = $_FILES["file-upload"]["name"];    // আপলোডেড ফোল্ডার ডেস্টিনেশনে মুভ    move_uploaded_file($source, $destination); ?>

চান্কিং

এই প্রসেসে, একটি বড় ফাইল ছোট ছোট অংশে ভাগ করে আপলোড করা হয়। 'Plupload' লাইব্রেরি ডাউনলোড করে ব্যবহার করা যায়।

<?php    // রেসপন্স ফাংশন    function verbose($ok=1,$info=""){       // আপলোড ফেল হলে 400 এরর থ্রো      if ($ok==0) { http_response_code(400); }      die(json_encode(["ok"=>$ok, "info"=>$info]));    }    // ইনভ্যালিড আপলোড    if (empty($_FILES) || $_FILES['file']['error']) {       verbose(0, "Failed to move uploaded file.");    }    // আপলোড ডেস্টিনেশন    $filePath = __DIR__ . DIRECTORY_SEPARATOR . "uploads";    if (!file_exists($filePath)) {       if (!mkdir($filePath, 0777, true)) {          verbose(0, "Failed to create $filePath");       }    }    $fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : $_FILES["file"]["name"];    $filePath = $filePath . DIRECTORY_SEPARATOR . $fileName;    // চান্ক নিয়ে কাজ    $chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;    $chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 0;    $out = @fopen("{$filePath}.part", $chunk == 0 ? "wb" : "ab");    if ($out) {       $in = @fopen($_FILES['file']['tmp_name'], "rb");       if ($in) {          while ($buff = fread($in, 4096)) { fwrite($out, $buff); }       } else {          verbose(0, "Failed to open input stream");       }       @fclose($in);       @fclose($out);       @unlink($_FILES['file']['tmp_name']);    } else {       verbose(0, "Failed to open output stream");    }    // চেক করুন ফাইল আপলোড হয়েছে কিনা    if (!$chunks || $chunk == $chunks - 1) {       rename("{$filePath}.part", $filePath);    }    verbose(1, "Upload OK"); ?>

যখন ৫০০ MB-এর বেশি সাইজের ফাইল আপলোড করার চেষ্টা করা হয়, সফলভাবে আপলোড হয়।


  1. অ্যান্ড্রয়েডে বড় অডিও ফাইল কমপ্রেস (Compress) করার পদ্ধতি

  2. ধাপে ধাপে গাইড: উইন্ডোজ পিসি থেকে আইক্লাউডে ফাইল আপলোড করুন

  3. বড় ফাইল ইন্টারনেটের মাধ্যমে ট্রান্সফার করার সহজ উপায়

  4. আপনার ওয়ার্ডপ্রেস সাইট সুরক্ষিত করুন: wp-config.php হ্যাকারদের হাত থেকে রক্ষা করুন