为了账号安全,请及时绑定邮箱和手机立即绑定

在另一个 php 中调用 download.php

在另一个 php 中调用 download.php

PHP
BIG阳 2022-10-09 20:15:14
我有一个包含在表单操作中的按钮,单击该按钮会调用下面的 download.php 并下载已经存在的文件。在 results.php 中形成动作<form method="post" action="download.php">        <button type="submit" class="btn btn-dark btn-block" data-toggle="dwn-one" title="Click to download"> Download </button>     </form>下载.php<?php        header("Content-disposition: attachment; filename=file1.txt");        header("Content-type: application/txt");        readfile("file1.txt");        header("results.php");?>上述功能运行良好,但现在我有很多文件要下载,所以我想避免多个下载按钮,而是提供一个选择功能,用户可以选择文件并单击下载按钮。到目前为止,我正在执行如下操作,但无法弄清楚如何调用 download.php。选择代码<form method = "post" action="">   <select class="form-control" name="downloaditem">        <option value="1">Select a file to download</option>        <option value="2">File one</option>        <option value="3">File two</option>        <option value="4">File three</option>        <option value="5">File four</option>      </select> <button type="submit" class="btn btn-info" name="files">Download</button></form>isset 函数if(isset($_POST['files'])){        $filesel = $_POST['downloaditem'];        if($filesel == "2")        {      //call to download.php        }}请帮忙。
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

只需将表单发送到 download.php 脚本。


<form method = "post" action="<url-to>download.php">

   <select class="form-control" name="downloaditem">

        <!-- It's not necessary to make the first option available for select -->

        <option value="0" disabled>Select a file to download</option>

        <option value="1">File one</option>

        <option value="2">File two</option>

        <option value="3">File three</option>

        <option value="4">File four</option>

      </select>

 <button type="submit" class="btn btn-info" name="files">Download</button>

</form>

下载.php


// Get the file name and path to the file based on the given id

// or return null

function getFile($id) {

    switch((int)$_POST['downloaditem']) {

        case 1:

            return ['file1', 'path/to/file1.txt'];

        case 2:

            return ['file1', 'path/to/file2.txt'];

        case 3:

            return ['file1', 'path/to/file3.txt'];

        default:

            return null;

    }

}


if(isset($_POST['files'])) {

    $file = getFile($_POST['downloaditem']);

    if (null !== $file} {

        header('Content-Disposition: attachment; filename=' . $file[0]. '.txt');

        header('Content-Type: application/txt');

        readfile($file[2]);

        header('results.php');

    } else {

        // If function returns null show a HTTP 404 error

        header('Content-Type: text/plain');

        header('HTTP/1.1 404 Not Found');

    }

}


查看完整回答
反对 回复 2022-10-09
  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信