我正致力于CMS系统的工作,其中所需的功能之一是能够上传图像以在网站上发布新闻。它是一个非常基本的功能,我有数据库的所有代码工作正常,但我不能让上传的图像从临时目录移动到新目录。
我也检查过SO上的其他问题,但找不到有用的答案。我也确保文件夹权限是正确的。
以下是相关代码,我们将不胜感激任何帮助或建议。
谢谢!
HTML
<?php
if(isset($_POST['postNew'])) {
createPost();
}
?>
<form method="post" class="newPost" enctype="multipart/form-data">
<input type="text" name="PostTitle" placeholder="Post Title"><br>
<textarea name="PostContent" placeholder="Post Content" style="resize:none;"></textarea><br>
<label>Featured Image</label><br>
<input type="file" name="featuredImage"><br>
<input type="submit" name="postNew" value="Publish">
<input type="reset" value="Discard Post">
</form>
PHP
$tmpfile = $_FILES['featuredImage']['tmp_name'];
$newfile = "/resources/images/news/" . basename($_FILES['featuredImage']['name']);
if(move_uploaded_file($tmpfile,$newfile)) {
// Add Content to Database
$title = $_POST['PostTitle'];
$content = $_POST['PostContent'];
$image = $_FILES['featuredImage']['name'];
$sql= "INSERT INTO `Posts` (`PostTitle`,`PostContent`,`featuredImage`) VALUE ('$title','$content', '$image')";
if(mysqli_query($conn,$sql)) {
echo "Post Successfully Created!";
} else {
echo("Post not created" . mysqli_error());
}
} else {
echo "Could not upload image.";
print_r($_FILES);
}
给出的PHP在正确的函数内,函数正在触发。当我收到错误时,它会返回print_r($ _ FILES),所以它在实际的move_uploaded_file函数中的某个地方
编辑:
我的实际代码并没有错过$
变量上的newfile
,而是我在实际路径中替换了$target_dir
,以便让您更好地了解最新动态on(虽然定义了target_dir,但我没有包含那个片段,我的那里很糟糕。)
我上传的文件只有2MB,我服务器上的最大上传大小为32MB。
另外,是的,我有权写入目录。抱歉,回复你的评论需要很长时间。