Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP में MySQL डेटाबेस से ब्लॉब आधारित फ़ाइल कैसे डाउनलोड करें?

ब्लॉब फ़ाइल के साथ काम करते समय यह सबसे आम समस्या है। आपके उदाहरण से, मैं देख सकता हूं कि आप "फाइल टाइप" को फाइलों के एक्सटेंशन के रूप में सहेज रहे हैं (यानी छवियों के लिए 'जेपीजी', पीडीएफ फाइलों के लिए 'पीडीएफ' आदि), आप अपलोड कर रहे हैं। लेकिन इसके बजाय आप फ़ाइल प्रकार को MIME सामग्री प्रकार के रूप में सहेज सकते हैं।

मान लीजिए यदि आप एक jpeg छवि अपलोड करते हैं - MIME प्रकार "fileType" में "छवि/jpeg" के रूप में संग्रहीत किया जाएगा। इसी तरह पीडीएफ के लिए इसे "एप्लिकेशन/पीडीएफ" के रूप में संग्रहीत किया जाएगा। मैंने डेटाबेस से ब्लॉब फ़ाइल डाउनलोड करने के लिए इस तरह कोड डिज़ाइन किया है। मैं यह मानने जा रहा हूं कि फ़ाइलें आपके द्वारा बनाई गई डेटाबेस तालिका में पहले ही अपलोड हो चुकी हैं।

डेटाबेस तालिका "अपलोड"

| फ़ाइल आईडी | फ़ाइल का नाम | फ़ाइल प्रकार | फ़ाइल आकार |फ़ाइलडेटा | उपयोगकर्ता आईडी |

डाउनलोड करें.php

<?php
$connection =  mysqli_connect("localhost","root"," ",your_database)
               or die('Database Connection Failed');
mysqli_set_charset($connection,'utf-8');

$id = 1;

// Use a prepared statement in production to avoid SQL injection;
// we can get away with this here because we're the only ones who
// are going to use this script.
$query = "SELECT * " ."FROM uploads WHERE userID = '$id'";
$result = mysqli_query($connection,$query) 
       or die('Error, query failed');
list($id, $file, $type, $size,$content) = mysqli_fetch_array($result);
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$file");
ob_clean();
flush();
echo $content;
mysqli_close($connection);
exit;

?>

आपको ब्लॉब-अपलोड का पूरा कोड यहां मिल सकता है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक चल रही mysql क्वेरी को कैसे रोकें

  2. एसक्यूएल में दो कॉलम से अद्वितीय जोड़े कैसे खोजें?

  3. MySQL त्रुटि 1005 (HY000):'foo.#sql-12c_4' तालिका नहीं बना सकता (त्रुटि:150)

  4. जब मेरा कॉलम INT(10) है तो मैं 10 अंक क्यों नहीं डाल सकता

  5. Amazon Aurora Serverless के साथ स्वचालित स्केलिंग