2013-06-27 32 views
0

我想创建一个表单,我只需上传图片,pdf和文档。 因此,我创建了以下形式:无法上传文件(pdf,jpg等)

<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"; 
} 

我总是从脚本的末尾获得“errormessage的”,当我尝试上传JPG或PDF格式。 我已经尝试了很多东西,但没有发现错误的解决方案。

你有什么想法吗?

回答

0

5000000 < $_FILES["file"]["size"]是你的问题。你正在测试“如果文件大小超过5000000 BYTES”

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

+0

Hi Rob W, 谢谢!我没有看到...,谢谢你的提示!现在一切正常。 –