1 Так как вы должны обработать файл с помощью этого скрипта, он требует больше
ресурсы, чем просто обычная ссылка для скачивания. Однако это зависит от ваших потребностей. Если вы думаете, что эти файлы нуждаются в большей безопасности. Допустим, только аутентифицированные пользователи могут загрузить файл, и только файл принадлежит ему. Тогда вам нужно подтвердить это. В такой ситуации вам нужен код, который вы указали в своем вопросе. Если ваши файлы открыты для публики, то вы можете отобразить прямую ссылку на файл, возможно, разместив их где-нибудь публично временно.
2 Я могу предложить вам два способа сделать это.
Метод 1:
Вам необходима поддержка javascript для удобного выполнения такого рода требований. Предположим, вам нужно отобразить HTML-код на странице, где возможна загрузка. Вы можете создать страницу с нужным вам HTML-кодом и добавить кнопку загрузки.
<input type="button" name="cmdDownload" id="cmdDownload" value="Download" onclick="downloadFile('<?php echo $pathToTheFile; ?>');" />
И вы можете оставить скрытый iframe для обработки загрузки.
<iframe id="downloadFrame" style="display:none"></iframe>
Предположим, ваша страница загрузки PHP - download.php.
Тогда у вас может быть такая функция javascript.
<script type="text/javascript">
function downloadFile(filepath)
{
var ifrme = document.getElementById("downloadFrame");
ifrme.src = "download.php?filepath="+filepath;
}
</script>
Метод 2:
Кроме метода, описанного выше, вы также можете использовать META Refresh.
<meta http-equiv="Refresh" content="3;URL=<?php echo $fullHTTPathToYourFile ?>" />
С этим вы также можете отображать HTML.