使用动态名称链接到文件

时间:2012-11-15 12:39:54

标签: php mysql file-upload anchor

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

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

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

所以当我不知道扩展名是什么时,我可以链接到文件,但我知道文件名是什么?。

1 个答案:

答案 0 :(得分: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";
    }
?>