У меня есть функция загрузки файла в php, которая вызывает загружаемый файл, но блокировщик всплывающих окон браузера не позволяет открыть его.
Цель состоит в том, чтобы иметь кнопку отправки формы в формате html, которая отправляет форму, редактирует файл rtf на сервере на основе входных данных формы, а затем загружает новый файл пользователю.
Поскольку мне нужен php для запуска некоторого кода после того, как пользователь нажимает на загрузку и до загрузки файла, я не мог заставить его работать каким-либо другим способом.Мне пришлось сделать php echo ссылку, а затем какой-нибудь js-код, который щелкает эту ссылку.
Функция загрузки:
function download($path, $name){
if(!file_exists($path)){
echo $path." does not exist.";
}
else{
echo "
<a href='download.php?path={$path}&name={$name}' id='download'
target='download_frame' style='display:none;'>Download File</a>
<script>document.getElementById('download').click();</script>
";
}
}
download.php:
<?php
header("Content-type: application/doc");
basename($_GET["path"]));
$name = $_GET["name"];
header("Content-Disposition: attachment; filename='".$name.".doc");
header("Content-Transfer-Encoding: quoted_printable");
header('Pragma: no-cache');
header('Expires: 0');
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-Transfer-Encoding: binary');
header("Content-type: application/force-download");
header('Content-Type: application/octet-stream');
readfile($_GET["path"]);