Загрузка изображения через <a download>, где href содержит переменную php, которая содержит содержимое изображения - PullRequest
0 голосов
/ 18 ноября 2018

Вот фрагмент моего кода, где $ arr [$ i] ['notes'] хранит содержимое изображения, полученного из базы данных

<div class="subs">


        <?php
            echo '<table style="width:100%">';
            echo '<th>Subject Code</th>';
            echo '<th>Subject Title</th>';
            echo '<th>Semester</th>';
            echo '<th>Credits</th>';
            echo '<th>Faculty</th>';
            echo '<th>Notes</th>';
                for($i=0;$i<sizeof($arr);$i++)
                {
                    if(empty($fac[$i])){
                        $fac[$i]="--";

                    }
                    echo '<tr><td>'.$arr[$i]['subcode'].'</td><td>'.$arr[$i]['subtitle'].'</td><td>'.$arr[$i]['sem'].'</td><td>'.$arr[$i]['credits'].'</td><td>'.$fac[$i].'</td><td> <a download="'.$arr[$i]['subcode'].'.pdf" href="$arr[$i][\'notes\']">'.$arr[$i]['subcode'].' Notes</a></td></tr>';

                }

                echo '</table>';
                echo '<br />';
        ?>




    </div>

Ссылка появляется на странице, но когдая нажимаю на него, получаю сообщение об ошибке «Файл не найден». Право указать переменную php в качестве источника тега. Есть ли еще что-нибудь, что можно сделать?

Снимок экранаошибки

1 Ответ

0 голосов
/ 18 ноября 2018

Можно загрузить изображение из содержимого файла, если вы знаете тип mime, используя схему данных и кодировку base64.

<html>
<head>

</head>
<body>

    <?php 

    $mime_type = "image/png";
    $file_content = file_get_contents("img.png");         

    ?>
    <a href="data:<?php echo $mime_type; ?>;base64,<?php echo base64_encode($file_content); ?>" download="anything.png">Download</a>

</body>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...