3

私はこのスニペットを持っています

if ($_FILES['tax']['error'] !== UPLOAD_ERR_OK) {
    die("Upload failed with error " . $_FILES['tax']['error']);
}
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime = finfo_file($finfo, $_FILES['tax']['tmp_name']);
    $ok = false;
    switch ($mime) {
        case 'image/gif':
        case 'application/pdf':
        case 'image/png':
        $ok = true;
        default:
    die("Unknown/not permitted file type");
    }
    move_uploaded_file($_FILES["tax"]["tmp_name"],"pints/" . $_FILES["tax"]["name"]);

画像をアップロードしようとすると、許可されたファイルタイプではないと表示されますが、ファイルがPDFドキュメントapplication/pdfの場合、正しいmimeタイプですか?

4

2 に答える 2

7

あなたはデフォルトのケースの前に壊すことを忘れました:)

ちなみに、あなたの直接の質問に答えるために、私はこのスレッドを何度も何度も参照していることに気づきました:PDFファイルの適切なMIMEメディアタイプ

于 2013-01-22T03:27:00.160 に答える
2

これを試してみてください

 if ($_FILES['tax']['error'] !== UPLOAD_ERR_OK)
        die("Upload failed with error " . $_FILES['tax']['error']);

    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime = finfo_file($finfo, $_FILES['tax']['tmp_name']);
    $ok = false;
    switch ($mime) {
        case 'image/gif':
        break;
        case 'application/pdf':
        break;
        case 'image/png':
            $ok = true;
        break;
        default:
            die("Unknown/not permitted file type");
        break;
    }
    move_uploaded_file($_FILES["tax"]["tmp_name"],"pints/" . $_FILES["tax"]["name"]);

finfo_open問題が解決しない場合は、どのように機能するかを教えてくださいfinfo_file

于 2013-01-22T03:29:29.807 に答える