Как скачать файл в PHP при нажатии кнопки ввода - PullRequest
0 голосов
/ 01 марта 2019

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

Мой оператор if в основном просто проверяет, существует ли файл, и если да, то начинаетскачать файл.Эта часть работает, однако я не могу заставить ее работать так, чтобы она загружала файл ТОЛЬКО при нажатии кнопки.

В данный момент ничего не происходит при нажатии кнопки.

Может быть, я не помещаю оператор if в правильное место?

      <form action='?module=clientsupport&call=landing-proco' method='post' enctype="multipart/form-data">           
        <input type='submit' name='download' class="button yellow" value="Download"/>

        <?php
        if (file_exists("D:/wwwroot/Workspace/George/Goliath/modules/test/file.txt")) {
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="' . basename("D:/wwwroot/Workspace/George/Goliath/modules/test/file.txt") . '"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: ' . filesize("D:/wwwroot/Workspace/George/Goliath/modules/test/file.txt"));
            readfile("D:/wwwroot/Workspace/George/Goliath/modules/test/file.txt");
            sleep(2);
            unlink("D:/wwwroot/Workspace/George/Goliath/modules/test/file.txt");
            exit;
        }
        ?>

    </form>

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Удалите php-код из html, создайте новый файл с вашим PHP-кодом и свяжите действие вашей формы с этим файлом.Это будет нормально работать

0 голосов
/ 01 марта 2019

Посмотрите на вашу программу.

Строка 1:

     <form action='?module=clientsupport&call=landing-proco' method='post' enctype="multipart/form-data">           

… начинает вывод HTML-документа.

Затем вы получаете:

 header('Content-Description: File Transfer');

, когда вы начинаете выводить что-то, что не является документом HTML, но слишком поздно , потому что вы уже в серединеHTML-документа .

Разработка логики для вывода того или другого.

...