0

PHPで求人応募マネージャーを作成しようとしています。申請者はWebフォームに詳細を入力し、送信を押すと、mysqlデータベースに追加されます。フォームの一部はカバーレターを追加するためのアップロードファイルボックスであるため、これはdoc、docx、pdf、rtf、txtのファイルを受け入れます。ファイルがアップロードされると、「applicationID」という形式の非表示フィールドに名前が変更されるため、MyCoveringLetter.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 に答える