PHP veritabanından diske BLOB görüntü kaydetmek

0 Cevap

Ben bir BLOB dosyası olarak benim veritabanında bir görüntü depolamış. Bu en iyi uygulama (bunu biliyorum) olmayabilir. Ben kendi kişisel diske kaydedebilirsiniz böylece tipik dosyayı istemi istemi kullanıcı ile tıklandığında sayfamda bir bağlantı oluşturmak istedik.

Ben çevrimiçi araştırılmış ama does't çalışıyorum ne sadece bir dosyada benim sayfaya değil bayt direklere çalışmak gibi değil. Dosyayı kaydetmek için benim kod aşağıda. Ben bu yüzden DB işlem ve retrevial ​​kod garip görünebilir bir çerçeve kullanıyorum ama değerleri düzgün set edilmektedir. Dosyaları da bu yüzden normal durumuna geri döndürmek için kod çözme işlevini çağırın DB saklanmadan önce base64 kodlanmış edildi.

function save_file($file_id) {
    $result = $DB->get_file($file_id);   
    $size = $result->fields['size'];  //1024
    $mime = $result->fields['mime'];  //image/jpg
    $name = $result->fields['name'];  //test.jpg

    header("Content-Disposition:attachment;filename=".$name);
    header("Content-Type=: ".$mime);
    header("Content-Length: ".$size);

    base64_decode(file);
    echo($file);
    exit();
}

0 Cevap