Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> PHP

PHP में 500MB से ऊपर की बड़ी फाइल कैसे अपलोड करें?

PHP का उपयोग करके बड़ी फ़ाइलों को दो तरह से अपलोड किया जा सकता है। उन दोनों की चर्चा नीचे की गई है -

  • php.ini फ़ाइल में upload_max_filesize सीमा को बदलकर।
  • फाइल चंक अपलोड को लागू करके, जो अपलोड को छोटे टुकड़ों में विभाजित करता है और अपलोड पूरा होने पर इन टुकड़ों को असेंबल करता है।

Php.ini फ़ाइल को नीचे दिखाए अनुसार अपडेट किया जा सकता है -

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

इससे बचा जाना चाहिए क्योंकि यह सर्वर और अन्य परियोजनाओं की सेटिंग्स को भी बदल देगा।

htacess फ़ाइल को अपडेट करना

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
   // changing the upload limits
   ini_set('upload_max_filesize', '50M');
   ini_set('post_max_size', '50M');
   ini_set('max_input_time', 300);
   ini_set('max_execution_time', 300);
   // destination folder is set
   $source = $_FILES["file-upload"]["tmp_name"];
   $destination = $_FILES["file-upload"]["name"];
   // uploaded folder is moved to the destination
   move_uploaded_file($source, $destination);
?>

चंकिंग

इस प्रक्रिया में, एक बड़ी फ़ाइल को छोटे भागों में विभाजित किया जाता है और फिर अपलोड किया जाता है। 'प्लुपलोड' लाइब्रेरी को डाउनलोड और इस्तेमाल किया जा सकता है।

<?php
   // the response function
   function verbose($ok=1,$info=""){
      // failure to upload throws 400 error
      if ($ok==0) { http_response_code(400); }
      die(json_encode(["ok"=>$ok, "info"=>$info]));
   }
   // invalid upload
   if (empty($_FILES) || $_FILES['file']['error']) {
      verbose(0, "Failed to move uploaded file.");
   }
   // upload destination
   $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;
   // dealing with the chunks
   $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");
   }
   // check if file was uploaded
   if (!$chunks || $chunk == $chunks - 1) {
      rename("{$filePath}.part", $filePath);
   }
   verbose(1, "Upload OK");
?>

जब कोई फ़ाइल जिसका आकार 500 एमबी से अधिक है, अपलोड करने का प्रयास किया जाता है, तो वह सफलतापूर्वक अपलोड हो जाती है।


  1. पीसी से iCloud में फाइल कैसे अपलोड करें

    IOS और Windows उपकरणों के बीच क्रॉस-प्लेटफ़ॉर्म संगतता की कमी प्रमुख सिरदर्द का कारण हो सकती है। अतीत में, हमने दिखाया है कि आप एंड्रॉइड पर आईक्लाउड का उपयोग कैसे कर सकते हैं, लेकिन यह प्रक्रिया पीसी पर उतनी सुव्यवस्थित नहीं है। हालांकि, अपने पीसी से आईक्लाउड पर फाइल अपलोड करना पूरी तरह से संभव है।

  1. इंटरनेट पर बड़ी फाइलें कैसे भेजें।

    हाल के वर्षों में, कई उपयोगकर्ताओं के लिए इंटरनेट पर बड़ी फ़ाइलें भेजने की क्षमता आवश्यक हो गई है। इस लेख में मैं आपको बिना किसी परेशानी के बड़ी फ़ाइलों को इंटरनेट पर स्थानांतरित करने के सबसे विश्वसनीय तरीके दिखाऊंगा। चूंकि मानक मैसेजिंग प्लेटफॉर्म (जीमेल, आउटलुक, आदि) पर 25 एमबी से अधिक की फाइलें

  1. WP-Config.php फ़ाइल को कैसे सुरक्षित करें

    हैकर की मानसिकता से सोचने की कोशिश करें। क्या आप एक ऐसे प्लेटफ़ॉर्म में सेंध लगाना नहीं चाहेंगे, जिसका उपयोग हज़ारों वेबसाइट करते हैं या प्लेटफ़ॉर्म को कई वेबसाइटों के साथ जबरदस्ती करने की कोशिश नहीं करते हैं? WP-स्कैनर जैसे टूल उपलब्ध ओपन सोर्स के साथ, यहां तक ​​​​कि एक शौकिया स्क्रिप्ट किडी भी अब