我想创建一个表单,只需上传图片、pdf和文档。因此,我创建了以下表单:
<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文件时,我总是从脚本的末尾收到"错误消息"。我尝试了很多方法,但都无法解决这个错误。
你有主意吗?
5000000 < $_FILES["file"]["size"]
是您的问题。您正在测试"如果文件大小大于5000000字节"
此外,unlink("../media/presse/" . $_FILES["file"]["name"]);
也不是很聪明。相反,您应该生成一个随机字符串,并将其附加在文件name
和extension
之间,然后上传。