0

我正在尝试在 php 中创建一个工作应用程序管理器。申请人在网络表格上填写他们的详细信息并按提交,然后将其添加到 mysql 数据库中。表单的一部分是一个上传文件框,用于添加求职信,这将接受 doc、docx、pdf、rtf、txt 格式的文件。上传文件后,它会重命名为名为“applicationID”的隐藏字段,因此名为 Mycovering letter.doc 的文件将变为类似于 124356456.doc 的内容。

我遇到的问题是在我的应用程序管理器中,我可以使用 while($row = mysql_fetch_array($result)) 然后提取申请人姓名等,但我不确定如何处理这些文件。如果文件刚刚命名为 124356456,我可以使用应用程序 ID 链接到该文件,但是因为扩展名可能是 .doc、docx、pdf 等的组合,我不知道如何链接到它。理想情况下,它会是这样的:

<a href="/pathtofile/124356456.*">View Covering letter</a>

所以我要问的是,当我不知道扩展名是什么但我知道文件名是什么时,我可以链接到一个文件吗?

4

1 回答 1

2

您必须在上传期间将扩展名存储在数据库中。

如何获得扩展名:

pathinfo($filename, PATHINFO_EXTENSION);

另一种解决方案是编写一个函数来检查文件是否存在并返回正确的扩展名。

<a href="<?php echo getFile('/pathtofile/124356456'); ?>">View Covering letter</a>

<?php
    function getFile($path) {
        if(file_exists($path.".doc"))
            return $path.".doc";
        else if(file_exists($path.".docx"))
            return $path.".docx";
        else if(file_exists($path.".pdf"))
            return $path.".pdf";
        else if(file_exists($path.".rtf"))
            return $path.".rtf";
        else if(file_exists($path.".txt"))
            return $path.".txt";
    }
?>
于 2012-11-15T12:50:13.887 回答