无法上传文件(pdf,jpg等)

时间:2013-06-27 21:11:26

标签: php upload

我想创建一个表单,我只需上传图片,pdf和doc。 因此我创建了以下表单:

<form method="post" action="index.php?op=editpress&save=1" enctype="multipart/form-data">
<label for="file" class="control-label">Neue Datei hochladen:</label>
<input type="file" id="file" name="file">
</form>

PHP代码:

if($_GET['save'] == 1 AND isset($_POST['submit'])) {
    $allowedExts = array("pdf","doc","docx","png","jpg","jpeg","gif");
    $allowedMimeTypes = array('application/msword','application/pdf','image/gif','image/jpeg','image/jpg','image/png');
    $temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);

    if (in_array( $_FILES["file"]["type"], $allowedMimeTypes ) AND (5000000 < $_FILES["file"]["size"]) AND (in_array($extension, $allowedExts)))
    {
    if ($_FILES["file"]["error"] > 0)
    {
        echo "There was an error: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {   
        if (file_exists("../media/presse/" . $_FILES["file"]["name"]))
        {
            unlink("../media/presse/" . $_FILES["file"]["name"]);         
        }
        move_uploaded_file($_FILES["file"]["tmp_name"],"../media/logo/" . $_FILES["file"]["name"]);               
    }
}
else
{
    echo "Here comes the errormessage";
}

当我尝试上传jpg或pdf时,我总是从脚本末尾得到“errormessage”。 我已经尝试了很多东西,但没有解决错误的方法。

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

5000000 < $_FILES["file"]["size"]是你的问题。你正在测试“IF FILESIZE大于5000000 BYTES”

此外,unlink("../media/presse/" . $_FILES["file"]["name"]);不是很聪明。相反,您应该生成一个随机字符串并将其附加到文件nameextension之间,然后上传。