php中的文件类型和大小无法正确显示

问题描述 投票:0回答:2

所以,问题出在我的php页面中,除了文件类型和文件大小外,一切似乎都很完美。

我已经发布了预期结果和实际结果,如您所见。问题似乎是它没有正确捕捉类型和大小,我发现我的代码没有任何问题..

谢谢你的帮助!

HTML:

<!DOCTYPE html>
<html lang="sv">
    <head>
        <title>2.2.2 Uppladdning av fil</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <form method="post" enctype="multipart/form-data" action="default.php">
            <p>
                <input type="file" name="file"/>
            </p>
            <p>
                <input type="submit" value="Sänd fil" name="push_button"/>
            </p>
        </form>
    </body>
</html>


<?php

    if(($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png")){

        move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]);
        $bild = $_FILES["file"]["name"];
        $bilden = $bild;
        echo'<img src="'.$bilden.'">';

    }else if ($_FILES["file"]["type"] == "text/plain"){
        $txt = "./uploads/" . $_FILES["file"]["name"];
        $open = fopen($txt, "r");
        fclose($openFile);

        echo fread($open, filesize($txt));

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


    }else {
        header('Content-type: text/plain');
        echo "Name: " . $_FILES["file"]["name"];
        echo "\nType: " . $_FILES["file"]["type"];
        echo "\nSize: " . $_FILES["file"]["size"] . " Kb";
    }

?>

PHP:

预期结果:

Name: fireworks.mp3
Type: audio/mp3
Size: 7881.6875 Kb

实际结果:

Name: fireworks.mp3
Type: 
Size: 0 Kb
php html
2个回答
0
投票

我认为你的一个问题是else部分的text / plain标题。这阻止我正确运行此表单。如果我删除它,使用以下代码,一切都很好:

<!DOCTYPE html>
<html lang="sv">
<head>
    <title>2.2.2 Uppladdning av fil</title>
    <meta charset="UTF-8">
</head>
<body>
<form method="post" enctype="multipart/form-data" action="">
    <p>
        <input type="file" name="file"/>
    </p>
    <p>
        <input type="submit" value="Sänd fil" name="push_button"/>
    </p>
</form>
</body>
</html>

<?php

if(($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png")) {

    move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]);
    $bild = $_FILES["file"]["name"];
    $bilden = $bild;
    echo'<img src="'.$bilden.'">';

} elseif ($_FILES["file"]["type"] == "text/plain") {
    $txt = "./uploads/" . $_FILES["file"]["name"];
    $open = fopen($txt, "r");
    fclose($openFile);

    echo fread($open, filesize($txt));

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

} else {
    echo "Name: " . $_FILES["file"]["name"];
    echo "\nType: " . $_FILES["file"]["type"];
    echo "\nSize: " . $_FILES["file"]["size"] . " Kb";
}

结果我得到了一个PDF文件:名称:invoice-124927.pdf类型:application / pdf文件大小:23609 Kb


-1
投票

你的内容类型错了

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

试试这个音频

"Content-Type: audio/mpeg"
© www.soinside.com 2019 - 2024. All rights reserved.